当前位置: 首页 > 知识库问答 >
问题:

Youtube oAuth 2.0 API 永久代码来检索令牌

马绪
2023-03-14

基本上,我的目标是制作一个表单,允许我网站的每个访问者在评论部分上传视频到我自己的频道。目前我正在使用YouTube OAuth版本3 API。问题是每html" target="_blank">3600秒,来自YouTube的代码就会过期,我们将被重定向到请求许可的Google OAuth(例如:https://accounts.google.com/o/oauth2/auth?client_id=805j8tubb260venakqj8jq3f6hl9eluu.apps.googleusercontent.com). 我们需要在每次按钮过期时手动单击“允许”按钮。

那么有没有可能允许访问一次,然后我们不需要再次获取代码来向网站访问者授予上传权限?

共有2个答案

梁丘伟
2023-03-14

尝试检查您是否遵循本文档中的步骤/流程。

1.将应用程序注册为已安装的应用程序

2. 请求访问令牌

3.用户同意决定

  • 在此步骤中,用户决定是否授予应用程序发出授权为用户的 API 请求的能力。Google 的授权服务器会显示您的应用程序的名称,以及它正在请求使用用户的授权凭据进行访问的 Google API 服务。然后,用户可以同意或拒绝授予对应用程序的访问权限。

4.处理来自谷歌的响应

5.交换刷新和访问令牌的授权码

6. 处理响应和存储令牌

在这里,Google将通过返回包含短期访问令牌和刷新令牌的JSON对象来响应您的POST请求。

{
  "access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
  "token_type" : "Bearer",
  "expires_in" : 3600,
  "refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
}

NOte:您的应用程序应将这两个值存储在一个安全、长期存在的位置,该位置可在应用程序的不同调用之间访问。刷新令牌使应用程序能够获取新的访问令牌(如果已有的令牌已过期)。因此,如果应用程序丢失了刷新令牌,用户将需要重复 OAuth 2.0 许可流,以便应用程序可以获取新的刷新令牌。

访问令牌定期过期,因此需要刷新。当访问令牌过期时,您的应用程序可以使用刷新令牌来获取新的有效访问令牌。服务器端web应用程序、已安装的应用程序和设备都在授权过程中获得刷新令牌。

请注意,在以下情况下,令牌可能会停止、不再工作或过期:

>

  • 用户已撤销访问权限。

    这个代币已经六个月没用过了。

    用户帐户已超过一定数量的令牌请求。

  • 濮阳功
    2023-03-14

    您应该按照KENdi的说明获取令牌——他几乎是直接从文档中提取的。但是,您只需要这样做一次。诀窍是将refresh_token保存在某个地方,然后在您想要上传视频之前使用它来获取新的访问令牌。这是我快速而肮脏的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());
    
     类似资料:
    • 我只是按照这里投票最多的答案,成功地在我的终端中安装了Visual Studio Code的命令。 但是,每次重启MacBook Pro后,命令都无法启动Visual Studio Code。 是否可以永久安装,这样我就不必每次打开MacBook Pro时都安装它? 我还发现文件夹在我重启笔记本电脑后被删除。 这就是笔记本电脑重启后我无法运行的原因。 为什么将安装在临时文件夹中? 我的MacBoo

    • 问题内容: 我目前正在使用swift和Xcode 6(测试版3)开发iOS应用。 到目前为止一切都很好,但是现在随着我的项目的发展,Xcode突然开始建立索引,并且一次又一次地建立索引,这使得Xcode几乎无法使用。 我在网上搜索了类似的问题,并尝试了解决方案,但没有一个有帮助。即使禁用索引过程()也不会使Xcode停止这样做。 索引时,我的CPU使用率高达300%+,导致风扇以最高速度运行。 在

    • 编辑:我刚刚发现它在这里得到了回答:持久的FB访问-服务器拉FB页面信息的令牌

    • 问题内容: 这将使用 临时的 302 HTTP状态代码重定向请求: 但是是否可以使用 永久的 301 HTTP状态代码重定向它? 问题答案: 您需要手动设置响应状态和标题。 将状态设置为之前将无效,否则将其设置为之后。

    • 问题内容: 如何使django开发服务器永久运行?这样我退出shell时就不会停止。 问题答案: 一个简单的方法是运行: 现在按,然后按退出此屏幕。 这将在屏幕中创建服务器,然后将其分离。这样,你可以简单地返回并输入: 你可以再次控制服务器并查看发生了什么。

    • Jekyll 支持以灵活的方式管理你网站的链接,你可以通过 Configuration 或 YAML 头信息 为每篇文章设置永久链接。你可以随心所欲地选择内建链接格式,或者自定义链接格式。默认配置为 date。 永久链接的模板用以冒号为前缀的关键词标记动态内容,比如 date 代表 /:categories/:year/:month/:day/:title.html。 模板变量 变量 描述 yea