我正在尝试使用新的 YouTube Data API v3 将视频上传到 Android 上的 YouTube,但收到 403 禁止错误:
com.google.api.client.googleapis.json.GoogleJsonResponseException: 403 Forbidden
01-22 00:10:41.716: WARN/System.err(5209): {
01-22 00:10:41.716: WARN/System.err(5209): "code" : 403,
01-22 00:10:41.716: WARN/System.err(5209): "errors" : [ {
01-22 00:10:41.716: WARN/System.err(5209): "domain" : "youtube.header",
01-22 00:10:41.716: WARN/System.err(5209): "location" : "Authorization",
01-22 00:10:41.716: WARN/System.err(5209): "locationType" : "header",
01-22 00:10:41.716: WARN/System.err(5209): "message" : "Forbidden",
01-22 00:10:41.716: WARN/System.err(5209): "reason" : "youtubeSignupRequired"
01-22 00:10:41.716: WARN/System.err(5209): } ],
01-22 00:10:41.720: WARN/System.err(5209): "message" : "Forbidden"
01-22 00:10:41.720: WARN/System.err(5209): }
代码如下:
我获得了 OAuth2.0 凭证,并使用它创建了 youtube 的实例:
YouTube youTube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), credential)
.setApplicationName("testapp/1.0")
.build();
# ... creating video to save space ...
youTube.videos().insert("snippet,statistics,status", video, mediaContent).execute();
有什么想法吗?
谢谢
听起来您正在尝试将视频上传到未链接的 Google 帐户。 这篇博文在某种程度上涵盖了该场景,尽管该博文的重点是 API 的 v2.1。
在 v3 中,您仍然无法将视频上传到未链接的 Google 帐户,并且没有 API 调用允许用户以编程方式链接帐户。您最好的选择是将用户带到 http://m.youtube.com/create_channel,他们可以通过浏览器处理链接,此时他们必须返回到您的应用程序并尝试再次上传。
您可以在 WebView 中使用此移动工作流程,让用户无需离开您的应用程序即可创建频道:
https://m.youtube.com/create_channel?chromeless=1&next=/channel_creation_done
完成后,处理会将用户带到/channel_creation_done,然后您可以关闭WebView。您可以在此处找到有关工作流程的更多信息:https://developers.google.com/youtube/create-channel
我解决了这个问题,我的答案在这里: 如何使用 ruby 通过服务帐户插入视频 youtube api v3 享受吧!
您收到的错误是因为您没有添加人员标签以及用于上传电影的电子邮件。如果您使用我答案中的代码,一切都已解决并正常工作