1

当我使用 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"
    }
  }
}`

有任何想法吗?

4

0 回答 0