Youtube oAuth 2.0 API检索令牌的永久代码
基本上,我的目标是制作一个表单,允许我网站的每个访问者在评论部分上传一个视频到我自己的频道。目前我正在使用YouTube OAuth版本3 API。问题是每3600秒,来自YouTube的代码就会过期,我们会被重定向到谷歌OAuth请求许可(例如:)。我们需要在每次按钮过期时手动单击“允许”按钮Youtube oAuth 2.0 API检索令牌的永久代码,youtube,youtube-api,youtube-data-api,Youtube,Youtube Api,Youtube Data Api,基本上,我的目标是制作一个表单,允许我网站的每个访问者在评论部分上传一个视频到我自己的频道。目前我正在使用YouTube OAuth版本3 API。问题是每3600秒,来自YouTube的代码就会过期,我们会被重定向到谷歌OAuth请求许可(例如:)。我们需要在每次按钮过期时手动单击“允许”按钮 那么,是否可以允许访问一次,然后我们不需要再次获取代码以向网站访问者授予上载权限?请尝试检查您是否遵循本文中的步骤/流程 1。将您的应用程序注册为已安装的应用程序 2。请求访问令牌 3。用户同意决定
那么,是否可以允许访问一次,然后我们不需要再次获取代码以向网站访问者授予上载权限?请尝试检查您是否遵循本文中的步骤/流程 1。将您的应用程序注册为已安装的应用程序 2。请求访问令牌 3。用户同意决定
- 在这一步中,用户决定是否授予您的应用程序生成作为用户授权的API请求的能力。Google的授权服务器显示您的应用程序的名称,以及它请求使用用户授权凭据访问的Google API服务的名称。然后,用户可以同意或拒绝授予对您的应用程序的访问权限
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
注意:应用程序应将这两个值存储在安全的,
可在不同调用之间访问的长寿命位置
你的申请。刷新令牌使应用程序能够
如果您拥有的访问令牌过期,请获取新的访问令牌。像这样的
如果应用程序丢失了刷新令牌,用户将需要
重复OAuth 2.0同意流,以便应用程序可以获得
新的刷新令牌
{
"access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}
访问令牌定期过期,因此需要刷新。当访问令牌过期时,您的应用程序可能能够使用刷新令牌来获取新的有效访问令牌。服务器端web应用程序、已安装的应用程序和设备都在授权过程中获得刷新令牌
注意
如果:
- 用户已撤消访问权限
- 该代币已经六个月没有使用了
- 用户帐户已超过一定数量的令牌请求
你应该按照肯迪的指示去获取代币——他几乎是直接从文档中提取的。但是,你应该只做一次。诀窍是将
刷新\u令牌
保存在某个地方,然后在上传视频之前使用该令牌获取新的访问令牌。下面是我的快速而肮脏的NodeJS解决方案:
function getAccessToken () {
const options = {
method: 'POST',
uri: 'https://accounts.google.com/o/oauth2/token',
form: {
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
refresh_token: 'YOUR_REFRESH_TOKEN',
grant_type: 'refresh_token'
}
}
return request(options)
.then(body => JSON.parse(body));
}
getAccessToken.then((token) => uploadSomeYoutubeVideo());
你好,谢谢你的回答,肯。但事实上,问题是我不想每小时都同意我的网站。在我的例子中,访问者可以上传他们的视频并将其放入我的频道。因此,每小时要求刷新令牌是一个问题。我对类似的应用程序使用Google.NET API,刷新是自动完成的。@MikeMeinz你好,迈克。PHP是否也可以获取自动刷新令牌?你知道逻辑是怎么运作的吗?对不起。我不使用PHP版本的API。刷新令牌会过期吗?