当我使用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 Playlist API no longer functioning?
此外,尝试发布到16个字符与32的播放列表。没有区别 Youtube API: Adding videos to a playlist with the new 32 character playlist 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 Content-Type:application / json 授权:AuthSub令牌=“AUTHORIZATION_TOKEN” GData-Version:2 X-GData-Key:key = DEVELOPER_KEY
{
"data":{
"video":{
"id":"6aiCJubxiGI"
}
}
}`
有什么想法吗?