2011-05-01 71 views
11

这个问题已经被已经问,但从来没有回答。的Youtube API单用户场景(视频上传)

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

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

我知道我可以使用ClientLogin身份验证,但我在YouTube API文档网站上阅读过它“不推荐用于新开发”,恐怕这意味着对它的支持将在附近停止未来。所以我宁愿使用OAuth。

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

由于 米。

回答

14

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

首先,注册API获得的client_id。

然后,登录到您的谷歌帐户,请键入下面的网址,用你的改变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。

+3

它的工作就像一个魅力除了它是值得一提的是1)代码可以使用一次; 2)代码仅在10分钟内有效(如此匆忙); 3)我必须按照[此处](https://developers.google.com/youtube/v3/guides/moving_to_oauth)所述设置额外参数** approval_prompt **'如果您需要长时间访问YouTube API一个Web应用程序,您可以通过将access_type参数设置为脱机并将approval_prompt参数设置为在初始授权请求或您的客户端配置中强制进行检索。 – 2014-08-30 21:49:19