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 文字 vs. 32 のプレイリストに投稿してみました。違いはありません Youtube API: 新しい 32 文字のプレイリスト ID を使用してプレイリストに動画を追加する
YouTubeでAPIを使用するためのドキュメントが他にもあるため、API v2.1を使用しています。v3 のドキュメントには、Google プラスの例が他にもあります。私は 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 Host: gdata.youtube.com Content-Type: application/json Authorization: AuthSub token="AUTHORIZATION_TOKEN" GData-Version: 2 X-GData-キー: キー=DEVELOPER_KEY
{
"data":{
"video":{
"id":"6aiCJubxiGI"
}
}
}`
何か案は?