2014-02-20 69 views
0

如何將個人的YouTube帳戶「鏈接」到我的網站上的帳戶?我試圖從視頻中獲取Google Analytics,他們賺了多少錢等。我知道我應該使用YouTube Analytics API,但是我看到大量不同的文檔,並且它變得令人困惑。是否有任何PHP庫可用於獲取此數據並將用戶帳戶鏈接到我的Web應用程序?我也對我獲得OAuth密鑰的位置感到困惑。YouTube Analytics API入門?

這裏有一些網站我已經看過:

1)Site One

2)Site Two

在站點中的兩個,我看着例子,但沒有真正幫助我,甚至瞭解如何開始。

回答

1

很多相關的信息,你需要的可以在這個文件中找到:

https://developers.google.com/youtube/analytics/authentication

基本上,它概述了以下4個步驟:

1)註冊您的Web應用程序中Google Cloud Console

這是必需的,因此您可以獲得客戶機密鑰和客戶機ID,您的服務器端PHP代碼需要這些代碼才能執行oAuth流(並獲得正確的範圍以查詢分析DA ta代表用戶身份驗證)。看到這裏就如何做到這一點的詳細信息:

https://developers.google.com/youtube/analytics/registering_an_application

最重要的事情做,因爲你的註冊應用程序是打開的YouTube Analytics(分析)API,併爲您的Web應用程序的新客戶端ID。

2)當用戶訪問您的頁面時,您需要某種方式(例如,登錄按鈕)來觸發oAuth流程的開始。觸發此操作時,您需要將瀏覽器重定向到此URL:

https://accounts.google.com/o/oauth2/auth?client_id=[YOUR客戶端ID] & redirect_uri = [URL您希望用戶被指定爲認證後] &範圍= https://www.googleapis.com/auth/yt-analytics.readonly&response_type=code&access_type=offline

這將向他們展示一個窗口,詢問他們是否想授予您的應用程序讀取其分析的權限。請注意,客戶端ID參數與您在步驟1中註冊應用程序時收到的參數相同。註冊過程還要求您設置允許的重定向URI,因此您必須在註冊時通過您設置的一個。

3)重定向網址將由第2步由Google的服務器請求「code」參數attched。因此,當它被請求時,它應該立即對另一個URL進行POST(即使用cURL或類似的東西),看起來像這樣:

POST/o/oauth2/token HTTP/1.1 Host:accounts.google。COM 內容類型:應用/ X WWW的窗體-urlencoded

代碼= [CODE,在來了作爲GET PARAMETER] & CLIENT_ID = [YOUR CLIENT ID] & client_secret = [YOUR CLIENT SECRET] & REDIRECT_URI = [已註冊的重定向URI] & grant_type = authorization_code

如果使用cURL作爲POST執行此操作,那麼響應將是具有訪問令牌和刷新令牌的JSON數據包。

4)您的php頁面可以存儲這兩者(例如在您的數據庫中),請注意,此時應將用戶視爲已登錄,並且您可以在所有API請求的標頭中使用訪問令牌發送到分析API。

https://developers.google.com/youtube/analytics/authentication#OAuth2_Calling_a_Google_API

它會在一個小時內到期,因此每個請求,你應該檢查它的年齡(也就是當你將其存儲在數據庫中,你可以存儲過期時間,例如),而當你越來越近,你可以使用刷新令牌來獲得新的訪問令牌。

https://developers.google.com/youtube/analytics/authentication#OAuth2_Refreshing_a_Token

現在,您可以將其重定向到任何地方你的應用程序需要他們能夠開始與API接口。

好像很多?它可以,但是一旦你獲得了範例,它就非常簡單。你問及PHP客戶,幸運的是有一個:

https://github.com/google/google-api-php-client

它有簡單處理整個OAuth2流程,並且還令牌自動有設置訪問YouTube的分析服務對象爲你因爲它正在進行各種呼叫。

+0

非常深思熟慮的答案。謝謝!另外,我是否會將用戶註冊與他們的YouTube或將他們的YouTube連接到我已經創建的帳戶。 –

+0

我已經做到了這一點;如果他們已經在您的網站上有一個帳戶,您可以通過點擊啓動oauth流程的按鈕爲他們提供一個「鏈接」帳戶的選項,並在完成後將他們的Gmail地址存儲在數據庫中,並將其用戶個人資料從您的網站存儲到數據庫中...或者如果他們使用oauth流創建新用戶,那麼當您返回您的網站時,他們也必須爲您設置一個用戶帳戶。關鍵是你有他們的Gmail地址,所以當他們做oAuth流程時,你知道你的用戶是誰! – jlmcdonald

+0

我在註冊時詢問用戶的電子郵件。我是否還需要存儲來自YouTube的電子郵件? @jlmcdonald –