Ope*_*mac 1 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",
"message" : "{0}",
"reason" : "unexpectedPart"
} ],
"message" : "{0}"
}
Run Code Online (Sandbox Code Playgroud)
通常在"message": "{0}"它应该告诉你哪个部分是错误的。在这里搜索了一下,我似乎找不到解决方案,现在我只指定snippet. 在构建我的更新请求时,我只指定snippet.title snippet.tags[]& snippet.categoryId。
上述内容用于测试环境,并且请求已获得youtube范围授权,因为我使用它将视频上传到同一 youtube 频道。
我自己的想法可能是:
加载后无法直接更新视频(但是,可以列出)
我不知何故遇到了一个错误
对于那些希望重现我所得到的东西的人,我在测试中采取了以下步骤:
使用授权凭据设置 youtube 实例
上传一个随机的小文件到频道(设置视频标题等)
成功返回后尝试按 id 列出视频
使用此 ID,从 youtube 检索视频资源
更改标签部分,保持标题等不变
尝试更新并收到该错误
任何帮助将不胜感激,我真的希望这不是一个明显的解决方案:)
小智 7
当您的视频更新请求未列出您发送的视频对象中包含的所有部分时,就会发生这种情况。例如,如果您的视频对象具有片段和状态(因为您使用了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();
Run Code Online (Sandbox Code Playgroud)
注意 的第一个参数youtube.videos().update,它包含状态和代码段。
希望这可以帮到你。
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |