【问题标题】:YouTube API refresh token flowYouTube API 刷新令牌流
【发布时间】:2014-05-19 19:41:22
【问题描述】:

我正在构建一个 ASP.NET Web API。我正在使用 YouTube API 在 YouTube 上上传视频。我已经设法通过刷新令牌流来实现 OAuth。生成刷新令牌后,我将以下代码用于对 YouTube API 的所有后续调用。

var token = new TokenResponse { RefreshToken = REFRESH_TOKEN };
var credentials = new UserCredential(new GoogleAuthorizationCodeFlow(
    new GoogleAuthorizationCodeFlow.Initializer
    {
        ClientSecrets = new ClientSecrets { ClientId = CLIENT_ID, ClientSecret = CLIENT_SECRET }
    }), "user", token);

YouTubeService service = new YouTubeService((new BaseClientService.Initializer()
{
    HttpClientInitializer = credentials
}));

我想知道此刷新令牌何时到期以及如何在没有任何用户输入/交互的情况下重新生成此刷新令牌,以便最终用户看不到 Google 帐户选择屏幕(在我的情况下我看到两个帐户,一个是 gmail,一个是 YouTube 频道。

另外,如果我生成了一个刷新令牌,那么如果我尝试再次使用 https://accounts.google.com/o/oauth2/auth 再次启动 OAuth 过程,我将不会获得刷新令牌作为响应。我一次只能有一个刷新令牌吗?

【问题讨论】:

    标签: asp.net-web-api youtube youtube-api google-authentication


    【解决方案1】:

    这里有一些例子,也在文档和其他类似的问题中。但是,可能不是您的编程语言。 refreshToken 应该由您保存并重复使用。它在用户自己撤销之前一直有效。获取 refreshToken 需要用户交互。 获得 refreshToken 后,在另一个请求中使用它来获得 accessToken。 YouTube API 请求中需要 accessToken 才能访问某些数据。 accessToken 将在 1 小时(3600 秒)后过期,但将来可能会更改此期限。

    【讨论】:

      猜你喜欢
      • 2021-06-13
      • 2012-04-10
      • 2017-08-11
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 2022-08-16
      • 2013-12-04
      相关资源
      最近更新 更多