YouTube API刷新令牌流程

时间:2014-05-19 19:41:23

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

我正在构建一个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流程,则无法获得刷新令牌。我一次只能有一个刷新令牌吗?

1 个答案:

答案 0 :(得分:0)

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