Java 更新消息{0}上的Youtube API意外部分
使用API已经有一段时间了,但遇到了一个问题:“youtube.part”上的400个错误请求。通常不是问题,我认为我可能指定了正确的零件,错误消息将告诉我哪里出了问题,我可以轻松地更改它,但是,错误如下:Java 更新消息{0}上的Youtube API意外部分,java,google-api,google-api-java-client,youtube-data-api,Java,Google Api,Google Api Java Client,Youtube Data Api,使用API已经有一段时间了,但遇到了一个问题:“youtube.part”上的400个错误请求。通常不是问题,我认为我可能指定了正确的零件,错误消息将告诉我哪里出了问题,我可以轻松地更改它,但是,错误如下: 400 Bad Request { "code" : 400, "errors" : [ { "domain" : "youtube.part", "location" : "part", "locationType" : "parameter",
400 Bad Request
{
"code" : 400,
"errors" : [ {
"domain" : "youtube.part",
"location" : "part",
"locationType" : "parameter",
"message" : "{0}",
"reason" : "unexpectedPart"
} ],
"message" : "{0}"
}
通常在“message”中:“{0}”
它应该告诉您哪部分出错。在这里搜索了一段时间后,我似乎找不到解决方案,现在我只指定snippet
。在生成更新请求时,我只指定snippet.title
snippet.tags[]
&snippet.categoryId
上述内容用于测试环境,请求通过youtube
范围进行授权,因为我使用它将视频上传到同一个youtube频道
我自己的想法是,也许是:
- 加载视频后,无法直接更新视频(但可以列出)
- 我不知怎么遇到了一个bug
任何帮助都将不胜感激,我真的希望这不是一个显而易见的解决方案:)当您的视频更新请求没有列出您发送的视频对象中包含的所有部分时,就会发生这种情况。例如,如果视频对象具有snippet和status(因为您使用了
video.setSnippet
和video.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
的第一个参数,它包含status和snippet
希望这能对您有所帮助。当您的视频更新请求没有列出您发送的视频对象中包含的所有部分时,就会发生这种情况。例如,如果视频对象具有snippet和status(因为您使用了
video.setSnippet
和video.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
的第一个参数,它包含status和snippet
希望这能对您有所帮助。很抱歉回复太晚,我在别处很忙。因此,您是正确的,错误不是由创建
Youtube.Videos.Update
引起的,而是在上一步中。我们首先列出视频以确保其存在,然后使用返回的视频作为更新的基础。列表请求指定了更多部分,因此引发错误。谢谢你的帮助很抱歉回复晚了,我在别处很忙。因此,您是正确的,错误不是由创建Youtube.Videos.Update
引起的,而是在上一步中。我们首先列出视频以确保其存在,然后使用返回的视频作为更新的基础。列表请求指定了更多部分,因此引发错误。谢谢你的帮助