2013-02-19 130 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

相关问题