刷新令牌过期时间谷歌日历

Posted

技术标签:

【中文标题】刷新令牌过期时间谷歌日历【英文标题】:Refresh Token Expiration time Google calendar 【发布时间】:2013-09-13 23:39:04 【问题描述】:

谁能告诉我通过 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;

【问题讨论】:

【参考方案1】:

刷新令牌不会过期,但可以撤销。您,令牌处理程序可以revoke the token yourself programatically 或最终用户可以revoke the token in their account settings。确保您是正确的using the refresh token to get a new access token,并且您没有尝试使用已过期的访问令牌。

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

【讨论】:

感谢我们的回复。我没有使用访问令牌,而是直接使用刷新令牌来创建日历服务。以前它工作正常。请检查我的答案中的代码,我如何使用刷新令牌创建日历服务。

以上是关于刷新令牌过期时间谷歌日历的主要内容,如果未能解决你的问题,请参考以下文章

如何从刷新令牌中获取访问令牌?刷新令牌会过期吗?

如何从 Google Calendar API 获取刷新的令牌

访问令牌和刷新令牌流程

如何生成刷新令牌的过期时间?

为啥刷新令牌过期不返回?

刷新令牌是不是过期,如果过期,何时过期?