2011-05-01 22 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