我正在尝试用 Python 开发我的第一个 Google App Engine 应用程序,作为其中的一部分,我希望用户能够将视频上传到 Youtube 并与该应用程序的其他用户分享。根据推荐的协议,上传到他们自己的 Youtube 帐户,应用程序需要捕获的唯一信息是视频 ID。
我真的希望该设施从应用程序内上传,而不是将用户重定向到主要的 Youtube 网站进行上传,这样用户在任何时候都不需要离开应用程序,以保持无缝连接。我原以为这会相对简单,因为这似乎是许多网站和应用程序都希望提供的功能,但似乎并非如此。
我真的很难理解我需要在这里通过什么 OAuth2 流程,以前从未与他们搏斗过。Youtube API 文档中唯一的上传示例代码是从您自己的机器上传(通过命令行),因此这里不相关。我已经向后阅读了文档,听起来基于浏览器的上传工具并没有针对 Youtube Data Api v3 进行更新,所以我需要做的第一件事就是在使用之前从用户那里获取访问令牌v2 基于浏览器的上传协议。鉴于用户将通过浏览器上传本地存储的文件(即在他们的机器上),我假设客户端 JavaScript OAuth2 流是我需要的,而不是 Python 服务器端流。还是我两者都需要?
问题是我什至无法让人们离开我使用 JavaScript 客户端库从应用程序提供的 html 页面,以便让他们进入授权页面。为了检查我是否了解通过 JavaScript 客户端库获取访问令牌的步骤,我首先尝试将 Google 示例代码从此处剪切并粘贴到 html 页面中:
并将 Api 密钥和客户端 ID 更改为我自己的,更新了控制台上 API 访问窗格上的 JavaScript 来源并授权了 Google+,但单击该按钮什么也没做。
所以大概我在这里误解了一些非常基本的东西!
有任何想法吗?JS 流是否被 Python 应用程序内的流控制覆盖?问题是我实际上应该使用服务器端流程,在这种情况下,我如何让用户从他们自己的浏览器上传,然后在上传后捕获视频 ID?
我不敢相信我是第一个尝试这个的人,如果有人已经管理过这个或有任何想法,我会非常感谢任何指点。谢谢你。