2016-11-22 91 views
1

閱讀Google API的文檔之後。我知道如果我們創建的項目需要訪問私人數據,我們應該使用oauth。但這是我的情況。我們將在Youtube上開設一個商業帳戶,我們將創建一個項目將視頻推送到我們自己的帳戶,我們不需要操作其他用戶的帳戶。我們可以在沒有OAuth的情況下使用谷歌YouTube數據API嗎?我們可以使用google youtube數據api而不使用OAuth

+0

隨着我從@DalmTo得到的幫助下,我創建了使用谷歌節點客戶端API在github上上傳視頻的項目。 [githubLink](https://github.com/ruhaitsia/timeconsole)。如果你使用google oauth2client有同樣的問題,請看看。 –

回答

3

有兩種方法可以通過Google API訪問私人用戶數據。

  1. 海峽Oauth2。如果您有權要求賬戶所有人是否可以訪問它
  2. Service accounts這是技術上由開發人員授權的。

通常我會說,因爲您只能訪問您擁有的一個帳戶,請使用服務帳戶。不幸的是,YouTube API不支持服務帳戶認證。

由於缺乏服務帳戶支持,您將不得不使用Oauth2。我過去曾經這樣做過。

使用某種服務器端語言驗證腳本一次。認證服務器將返回一個Refresh令牌。刷新令牌可以隨時用於獲取新的訪問令牌。訪問令牌用於訪問Google API,並且僅在一小時內有效。將此刷新令牌保存在某處。隨時可以隨時訪問有問題的YouTube帳戶。

注意:你將不得不觀看它。刷新令牌很少會變得無效。我建議準備好一個腳本,這將允許您重新驗證應用程序,並再次存儲新的刷新令牌。它罕見的發生,但它可以發生最好的預先配對。

的Oauth播放地面

的Oauth點的部分原因是,它識別您的應用,雖然谷歌創建谷歌開發者控制檯上您的項目。比如配額和訪問哪些API的控制。如果你發送垃圾郵件,他們會知道並關閉你。 (從未見過這種情況)

當您請求訪問用戶時,它會在Google開發者控制檯中彈出項目名稱。這在Google開發者控制檯中由該項目的客戶端ID和客戶端專屬號識別。當我使用oauth遊樂場時,我被問到'Google OAuth 2.0 Playground想要..'

所以通過使用遊樂場,您正在使用谷歌客戶端ID和客戶端祕密爲您自己創建刷新令牌。如果其他開發者也這樣做,YouTube的配額可能會在一天內用完。同時明智的是,您現在可以讓該項目訪問您的數據。如果谷歌突然決定刪除更改客戶端ID或生成一個新ID,那麼請忽略這一點。您的刷新令牌將不再有效。如果隨機開發X也在使用它,並且他開始發送垃圾郵件並且客戶端ID被關閉(想想這發生在去年),您將不得不等待谷歌上傳一個新的客戶端ID,取締。

谷歌OAuth 2.0遊樂場可能縫好,但它不適合日常使用IMO它的好測試沒有更多。創建你自己的項目並不難,只需要一個可以處理http Post的編程語言。

我的教程Google 3 legged oauth2 flow

+0

我也注意到Google提供了一個名爲oauth playground的工具。它可以生成刷新令牌和訪問令牌,我可以使用此工具而不是編寫自己的腳本來獲取刷新令牌嗎?長期刷新的代碼不會過期,我們可以在任何時候使用它來生成訪問令牌,對吧? 但服務帳戶不能用於Youtube數據api真的讓事情變得困難。 感謝您的幫助。 DalmTo,真的很感激。 –

+0

最後成爲文本牆對不起:)我已經做了四年,現在我很樂意提供幫助。可能會讓你時間朝着正確的方向指引你。 – DaImTo

+1

@DalmTo,我在YouTube上觀看了此視頻[使用OAuth遊樂場爲YouTube API調用生成刷新令牌](https://www.youtube.com/watch?v=hfWe1gPCnzc&list=PLhBgTdAWkxeB-zCekGukAo0DzmpwBiua2&index=6)。我們可以使用我們自己的客戶端ID和密碼在oauth操場中生成刷新令牌。 但是,我應該編寫自己的代碼來生成刷新令牌。感謝您的詳細解釋。 –

相關問題