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

时间:2011-05-01 18:04:24

标签: oauth youtube-api access-token single-user

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

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

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

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

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

由于 米。

1 个答案:

答案 0 :(得分: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=code&access_type=offline

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

然后打开一个终端并输入(更改你的代码,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"

你会得到如下回复:

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

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