我正在构建一个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流程,则无法获得刷新令牌。我一次只能有一个刷新令牌吗?
答案 0 :(得分:0)
此处还有一些示例,文档和其他类似问题。但是,也许不是您的编程语言。 refreshToken应该由您保存并重复使用。它一直有效,直到被用户自己撤销。获取refreshToken需要用户交互。 获得refreshToken后,在另一个请求中使用它来获取accessToken。某些数据访问的YouTube API请求中需要accessToken。 accessToken在1小时(3600秒)后到期,但此期间可能会在将来更改。