当我使用 javascript/jquery 将视频 id 对象发布到 youtube 播放列表时,我收到 400 错误无效 JSON。对象是:
{ "video":
{
"id": "me21QEpg760"
}
}
ajax 请求:
$.ajax({
type: 'POST',
url: "https://gdata.youtube.com/feeds/api/playlists/" + plistId + '?v=2&alt=jsonc',
data: {
"video":
{
"id": "me21QEpg760"
}
},
dataType: 'jsonc',
beforeSend: function(xhr){
xhr.setRequestHeader('Content-type', 'application/json; charset=UTF-8');
xhr.setRequestHeader('Authorization', 'AuthSub token="' + Video.token + '"');
xhr.setRequestHeader('X-GData-Key', 'key="' + Video.dev_key + '"');
xhr.setRequestHeader('GData-Version', 2);
},
scope: 'https://gdata.youtube.com',
error: function(data, textStatus, errorThrown) {
console.log(data);
}
});
我使用经过验证的 dev_key 和访问令牌通过 oauth2 进行了身份验证。我对 GET 请求没有任何问题 - 我可以很好地提取播放列表和视频信息。
我尝试更改播放列表前缀 - 从播放列表 ID 中删除“PL”,但我仍然得到相同的结果 YouTube 播放列表 API 不再起作用?
此外,尝试发布到 16 字符与 32 字符的播放列表。没有区别 Youtube API:使用新的 32 字符播放列表 ID 将视频添加到播放列表
我正在使用 api v2.1,因为有更多关于在 youtube 上使用 api 的文档。v3 文档有更多关于 google plus 的示例。我对使用 v3 很感兴趣,但确实可以使用一些特定于 youtube 的 javascript 示例来降低语法。
我使用 JSONLint 验证了我作为有效 JSON 传入的对象。jsonc v2.0 指南以相同的格式显示了这个特定的数据对象。 https://developers.google.com/youtube/2.0/developers_guide_jsonc
` POST /feeds/api/users/default/favorites?alt=jsonc HTTP/1.1 主机:gdata.youtube.com 内容类型:application/json 授权:AuthSub token="AUTHORIZATION_TOKEN" GData-版本:2 X-GData-密钥:key=DEVELOPER_KEY
{
"data":{
"video":{
"id":"6aiCJubxiGI"
}
}
}`
有任何想法吗?