更新消息{0}上的YouTube API意外部分 [英] Youtube API unexpected part on Update Message {0}

查看:28
本文介绍了更新消息{0}上的YouTube API意外部分的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用该API有一段时间了,遇到了一个问题:youtube.part上的400错误请求。正常情况下不是问题,我想可能是指定了不正确的部分,错误消息会告诉我错误的地方,我可以很容易地更改它,然而,错误如下:

400 Bad Request
{
  "code" : 400,
  "errors" : [ {
     "domain" : "youtube.part",
     "location" : "part",
     "locationType" : "parameter",
     "message" : "{0}",
     "reason" : "unexpectedPart"
  } ],
  "message" : "{0}"
}

通常在"message": "{0}"中,它应该会告诉您哪里出了问题。在这里搜索了一下,我似乎找不到解决方案,现在我只指定snippet。在构建我的更新请求时,我只指定了snippet.titlesnippet.tags[]&;snippet.categoryId

以上是在测试环境中使用的,请求在youtube范围内获得授权,因为我使用它将视频上传到同一个YouTube频道。

我自己的想法可能是:

  • 无法在加载视频后直接更新视频(但可以列出)

  • 我不知何故遇到了错误

对于那些希望重现我所得到的东西的人,我在测试中采取了以下步骤:

  1. 使用授权凭据设置YouTube实例

  2. 将随机小文件上传到频道(设置视频标题等)

  3. 尝试按ID列出视频成功返回后

  4. 使用此ID从YouTube检索视频资源

  5. 更改标记部分,保留标题ETC不变

  6. 尝试更新并收到错误

任何帮助都将不胜感激,我真的希望这不是一个显而易见的解决方案:)

推荐答案

当您的视频更新请求未列出您要发送的视频对象中包含的所有部分时,会发生这种情况。例如,如果您的视频对象有代码片段和状态(因为您使用了video.setSnippetvideo.setStatus),则更新方法中的第一个参数必须列出这两个部分:

Video ve = listVids[0];
ve.setStatus(...)
ve.setSnippet(...)
...
YouTube.Videos.Update updateVideosRequest = youtube.videos().update("snippet, status", ve);
Video videoResponse = updateVideosRequest.execute();

请注意youtube.videos().update的第一个参数,它同时包含状态和代码段。

希望这能帮助您。

这篇关于更新消息{0}上的YouTube API意外部分的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆