我需要将YouTube API集成到我的GWT web应用程序中。我需要进行YouTube API调用,例如以下调用:
- 上传:https://developers.google.com/youtube/2.0/developers_guide_protocol_browser_based_uploading
- 检查状态:https://developers.google.com/youtube/2.0/developers_guide_protocol_checking_video_status
- 设置开发者标签:https://developers.google.com/youtube/2.0/developers_guide_protocol_uploading_videos#Assigning_Developer_Tags
为了规避浏览器的同源限制,调用必须是CORS调用。
如何从GWT web应用程序进行这些YouTube API调用?如果能提供一个小的代码示例,我们将不胜感激。
请注意,我曾尝试使用YouTube Direct Lite,但它似乎不允许设置开发者标签。这对我来说至关重要。
YouTube提供了一个示例,展示了如何进行YouTube API CORS调用:
- 示例的源代码
- 样品演示
您可以使用GWT的JavaScript Native Interface(JSNI)将示例中的JavaScript集成到GWT应用程序中:
- 关于JSNI的更多信息
请注意,示例JavaScript使用某些浏览器版本不支持的XMLHttpRequest
:
- CORS/
XMLHttpRequest
支持矩阵
我个人没有使用过YouTube API,但从API中我可以推断出,你基本上需要完成三件事
- 通过GWT中的RequestBuilder进行HTTPPOST请求调用,如下所述
- 通过XML创建和解析
- 使用带有FileUpload小部件的FormPanel来处理实际的文件上传
我链接的内容提供了一些很好的代码示例,当然可以帮助您按照YouTube的要求在GWT中调用API。要使HTTP调用CORS,请参阅这篇SO文章。