1

谁能告诉我通过 OAuth2 生成刷新令牌的到期时间。实际上它通常返回 2 个参数访问令牌和刷新令牌。如果访问令牌过期,我们使用刷新令牌来生成新的访问令牌。但是 Google Calendar Version3,我使用刷新令牌来调用日历 API。但是在这里我遇到了令牌过期的问题。因此,任何人都可以建议我在令牌过期时该怎么办。据我所知,刷新令牌没有到期时间。请检查以下代码以使用刷新令牌创建日历服务:-

 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;
}
4

1 回答 1

3

刷新令牌不会过期,但可以撤销。您,令牌处理程序可以自己以编程方式撤销令牌,或者最终用户可以在他们的帐户设置中撤销令牌。确保您正确使用刷新令牌来获取新的访问令牌,并且您没有尝试使用已过期的访问令牌。

您可以编辑您的问题以显示您遇到的确切错误吗?

于 2013-09-10T12:40:16.443 回答