2013-09-10 3 views
0

Может ли кто-нибудь рассказать мне об истечении срока действия для обновления токена через OAuth2. На самом деле он обычно возвращает 2 токена доступа к параметрам и токен обновления. Мы использовали токен обновления, чтобы генерировать новый доступ toke, если токен доступа истек. Но Google Calendar Version3, я использую токен обновления, чтобы вызвать API календаря. Но здесь у меня проблема с тем, что токен истекает. Так может кто-нибудь, пожалуйста, предложите мне, что я могу сделать, когда истечет токен. По мне нет времени для обновления токена обновления. Пожалуйста, проверьте код ниже для создания службы календаря с помощью токена обновления: -Обновить токен Срок годности Календарь Google

private CalendarService CreateService(string token) 
{   
    KeyValuePair<string, string> credentials = Common.Get3LOCredentials(); 
    var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description); 
    provider.ClientIdentifier = credentials.Key; 
    provider.ClientSecret = credentials.Value; 
    var auth = new Google.Apis.Authentication.OAuth2.OAuth2Authenticator<NativeApplicationClient>(provider, (p) => GetAuthorization(provider, token)); 
    CalendarService service = new CalendarService(new BaseClientService.Initializer() 
    { 
     Authenticator = auth, 
     ApiKey = ConfigurationManager.AppSettings["APIkey"].ToString(), 
     GZipEnabled = false 
    });  
    return service; 
} 

private static IAuthorizationState GetAuthorization(NativeApplicationClient arg, String Refreshtoken) 
{ 
    IAuthorizationState state = new AuthorizationState(new[] { CalendarService.Scopes.Calendar.GetStringValue() }); 
    state.Callback = new Uri(NativeApplicationClient.OutOfBandCallbackUrl); 
    state.RefreshToken = Refreshtoken;   
    return state; 
} 

ответ

2

токены обновления не истекают, но они могут быть отменены. Вы, обработчик токена, можете revoke the token yourself programatically или конечный пользователь может revoke the token in their account settings. Убедитесь, что вы правильно указали using the refresh token to get a new access token, и вы не пытаетесь использовать токен доступа, срок действия которого истек.

Можете ли вы изменить свой вопрос, чтобы показать точную ошибку, которую вы получаете?

+0

Спасибо за наш ответ. Вместо использования токена доступа я непосредственно использую токен обновления для создания службы календаря. Раньше он работал нормально. Просьба проверить код в своем ответе, как я создаю службу календаря с использованием токена обновления. –

Смежные вопросы