2013-02-19 174 views
0

我想開發在Python我第一次谷歌App Engine應用程序,作爲我希望用戶能夠上傳視頻到Youtube,並與他們分享一部分該應用的其他用戶。根據推薦的協議,上傳將是他們自己的Youtube帳戶,應用程序需要捕獲的唯一信息將是視頻ID。谷歌App Engine的:使用JavaScript客戶端庫的OAuth2授權

我真正想要的設施,從應用程序內上傳,而不是將用戶重定向到主Youtube網站上傳,這樣用戶無需離開應用程序在任何時候,讓事情變得渾然一體。我認爲這將是相對簡單的,因爲它似乎是許多網站和應用程序想要提供的功能,但似乎並非如此。

我真的在努力瞭解的OAuth2流,我需要經過這裏,以前從未接觸過與他們搏鬥。 Youtube API文檔中唯一的上傳示例代碼是從您自己的機器上(通過命令行)上傳的,因此在這裏無關。我已經向後閱讀了文檔,並且聽起來不像基於瀏覽器的上傳工具已針對Youtube Data Api v3進行了更新,所以看起來我需要的第一件事是在使用之前從用戶那裏獲取訪​​問令牌基於v2瀏覽器的上傳協議。鑑於用戶將通過瀏覽器上傳本地存儲的文件(即在他們的機器上),我假定客戶端JavaScript OAuth2流程是我需要的,而不是Python服務器端流程。或者我需要兩個?

的問題是,我甚至不能讓人們離開我使用JavaScript客戶端庫的應用程序服務的HTML頁面,以讓他們到授權頁面。要檢查我理解的步驟,以獲得通過JavaScript客戶端庫的訪問令牌,我已經嘗試作爲第一步字面上剪切和粘貼谷歌示例代碼到HTML頁面從這裏:

Google Api Javascript Client Library sample

並將API密鑰和客戶端ID更改爲我自己的,更新了控制檯上的API訪問面板和授權的Google+上的JavaScript來源,但單擊該按鈕只是不做任何事情。

所以想必我誤解了一些非常基本在這裏!

任何想法? JS流程是否被Python應用程序中的流程控制所覆蓋?是否應該實際使用服務器端流程,在這種情況下,如何讓用戶從自己的瀏覽器上傳,然後在上傳後捕獲視頻ID?

我不能相信我嘗試這第一人,我會爲任何指針真的很感激,請,如果任何人經營着這已經或有任何想法。謝謝。

+0

這可能有所幫助:https://developers.google.com/oauthplayground/ – 2013-02-19 11:26:03

+0

這是一個很好的資源,感謝您的鏈接。 – Alistair 2013-02-19 22:12:04

回答

1

這裏有一個選項,如果你完全可以在JavaScript中完全處理客戶端的事情,你也可以限制自己支持CORS的瀏覽器:http://apiblog.youtube.com/2012/05/unlocking-javascripts-potential-with.html這就是我可能會去的,如果你是好的這些限制和唯一的YouTube API集成你做的是上傳。

這可能是一個Python App Engine應用程序更合適的替代選項,一個是使用了server-side web application flow。這裏的問題是,您需要使用Google APIs for Python client library的組合來處理OAuth 2,而舊版本GData API Python client library需要處理基於瀏覽器的上載流程。這兩者完全可以混合,我們有一篇博客文章談到了一個開源的Python App Engine應用程序:http://apiblog.youtube.com/2012/08/party-playlist-picker-experimental.html

正如您指出的那樣,目前在v3中沒有基於瀏覽器的上傳流程。

+0

這真的很有幫助和響應,謝謝!我真的很高興有一個前進的方向,我現在要研究兩種選擇。 – Alistair 2013-02-19 19:52:51

+0

CORS流程非常精美,對用戶而言非常無縫,非常感謝我指出了這一點。 – Alistair 2013-02-21 14:37:30

相關問題