2013-06-24 3 views
0

В настоящий момент мой код не обновляет мой код доступа, когда он истекает. Я не понимаю, как реализовать код из этого сообщения (How to generate access token using refresh token through Google Drive SDK in .NET?) внутри моего собственного кода.Реализовать токен обновления в моем коде - google api C#

Мой код:

private static IAuthorizationState GetAuthorization(NativeApplicationClient arg) 
    { 
     // Get the auth URL: 
     IAuthorizationState state = new AuthorizationState(new[] { "https://www.googleapis.com/auth/yt-analytics.readonly" }); 
     state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); 
     Uri authUri = arg.RequestUserAuthorization(state); 

     // Request authorization from the user (by opening a browser window): 
     Process.Start(authUri.ToString()); 
     Console.Write(" Authorization Code: "); 
     string authCode = Console.ReadLine(); 
     Console.WriteLine(); 

     // Retrieve the access token by using the authorization code: 
    return arg.ProcessUserAuthorization(authCode, state); 
    } 

Конкретно я не получаю эту строку. Как сохранить токен обновления и вставить его в state.RefreshToken? Я предполагаю, что мне нужно втиснуть эти 2 строки (state.RefreshToken и arg.RefreshToken (состояние)) непосредственно перед возвратным состоянием?

state.RefreshToken = "<refresh token previously saved>"; 

ответ

-1

Вот пример, который хранит OAuth 2 учетные данные в локальном файле и автоматически генерирует новый маркер доступа от маркера обновления перед каждым вызовом: https://developers.google.com/youtube/v3/code_samples/dotnet#my_uploads

Маркер доступа должен длиться в течение одного часа. Если ваш код работает непрерывно, и вам нужно сделать вызов API по прошествии часа, вы можете явно вызвать метод GetAuthorization() еще раз.

+0

У меня возникла ошибка для AuthorizationMgr: «Имя« AuthorizationMgr »не существует в текущем контексте». – tutu

+0

Убедитесь, что у вас есть все тот же «using ...» импорт, как в примере, и что вы включили библиотеки DLL в свой проект. В верхней части примера есть комментарий с ссылками для загрузки всех зависимостей. –

+0

Все еще не работает. Но у меня это работает с этим примером: http://stackoverflow.com/questions/7454930/google-api-how-can-i-use-refreshtokens-to-avoid-requesting-access-every-time-m. Благодарю. – tutu