最后,我使用新的NuGet使其与Youtube Data API V3.0一起工作。非常感谢你。我还有一个关于“access_token”的问题。
我们只能使用“access_token”一小时。我们是否必须每小时刷新一次“access_token”,或者“refresh_token”是否在背景中使用“client_secrets.json”自行创建?如果我必须自己刷新它,你能告诉我我可以使用的代码或文件吗?
非常感谢。
如果我使用错误的语法,我会道歉。答案 0 :(得分:0)
根据Google的Youtube Data API v3上的文档,您需要实现自己的oauth客户端。我假设您已经注册了您的应用程序并拥有client_id和client_secret。在向Google的API提出请求时需要这些。
首先,您需要加载https://accounts.google.com/o/oauth2/auth
,因为这是Google的oauth2提供商。示例请求可能如下所示:
https://accounts.google.com/o/oauth2/auth?
client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&
redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback&
scope=https://www.googleapis.com/auth/youtube&
response_type=code&
access_type=offline
样本回复:
http://localhost/oauth2callback?code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf
假设您的用户接受Google的访问权限,则您需要交换Google返回的授权码才能获得刷新和访问令牌。
您需要POST到此地址: https://accounts.google.com/o/oauth2/token
您的帖子数据将包含从上一个回复返回的代码,您的client_id,您的client_secret,您的redirect_uri和grant_type。
样本发布数据:
code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf&
client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&
client_secret=hDBmMRhz7eJRsM9Z2q1oFBSe&
redirect_uri=http://localhost/oauth2callback&
grant_type=authorization_code
示例回复:
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
然后你应该存储你的access_token和refresh_token以供日后使用。 access_token在3600秒(1小时)内到期。
要刷新您的访问令牌,请发布以下内容:
client_id=21302922996.apps.googleusercontent.com&
client_secret=XTHhXh1SlUNgvyWGwDk1EjXB&
refresh_token=1/6BMfW9j53gdGImsixUH6kU5RsR4zwI9lUVX-tqf8JXQ&
grant_type=refresh_token
此处提供完整的开发人员文档:
https://developers.google.com/youtube/v3/guides/authentication