使用OAuth的Youtube API单用户场景(上传视频)

mat*_*teo 11 oauth youtube-api single-user access-token

这个问题已被提出,但从未回答过.

我想写一些PHP脚本,将视频上传到我自己的YouTube帐户.我已经注册了应用程序并拥有开发人员密钥,客户密钥和客户密钥.

我不需要允许任何用户将视频上传到自己的帐户,因此我无需完成完整的OAuth流程; 特别是我不需要在任何地方重定向任何人:我只需要我的脚本代表我进行身份验证(而不是代表任何其他人).

我知道我可以使用ClientLogin身份验证,但我在YouTube API文档网站上看到它"不推荐用于新开发",我担心这意味着它的支持将在不久的将来停止.所以我更喜欢使用OAuth.

Twitter API也使用OAuth,它提供了一种简单的方法,使用您可以在应用程序管理页面上找到的访问令牌,使用应用程序所有者自己的帐户进行身份验证.如何为Youtube应用程序获取类似的令牌?

谢谢你.

DrX*_*eng 14

尝试使用OAuth 2.0安装应用程序:http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#OAuth2_Installed_Applications_Flow

首先,注册API以获取client_id.

然后,登录您的Google帐户,输入以下网址,与您的帐户更改client_id.redirect_uri应设置为"urn:ietf:wg:oauth:2.0:oob".

https://accounts.google.com/o/oauth2/auth?client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&redirect_uri=urn:ietf:wg:oauth:2.0:oob&scope=https://gdata.youtube.com&response_type=代码&ACCESS_TYPE =离线

然后,您授权自己的应用程序并获取授权代码.

然后打开一个终端并输入(更改你的代码,client_id和client_secret):

curl https://accounts.google.com/o/oauth2/token -d "code=4/ux5gNj-_mIu4DOD_gNZdjX9EtOFf&client_id=1084945748469-eg34imk572gdhu83gj5p0an9fut6urp5.apps.googleusercontent.com&client_secret=hDBmMRhz7eJRsM9Z2q1oFBSe&redirect_uri=urn:ietf:wg:oauth:2.0:oob&grant_type=authorization_code"
Run Code Online (Sandbox Code Playgroud)

你会得到如下回应:

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

记住refresh_token,每次运行应用程序时,都需要使用refresh_token获取一个新的access_token.

  • 它有点像魅力,但值得一提的是1)代码只能使用一次; 2)代码仅有效10分钟(如此匆忙); 3)我必须设置额外参数**approval_prompt**,如[here](https://developers.google.com/youtube/v3/guides/moving_to_oauth)所述``如果您需要长期访问YouTube API,请参阅在Web应用程序中,您可以通过将access_type参数设置为offline并使用approval_prompt参数来强制执行初始授权请求或客户端配置来检索一个. (3认同)