0

Youtube ContentID API を使用して AssetID に対する所有権情報を取得しようとしています。API Explorer で必要なデータを確認できますが、ドット表記を使用してデータをドリルダウンすることはできません。

API エクスプローラーからの出力は次のとおりです。

{
"kind": "youtubePartner#asset",
"id": "A146063471697194",
"type": "music_video",
"ownership": {
"kind": "youtubePartner#rightsOwnership",
"general": [
  {
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
},
"ownershipEffective": {
"kind": "youtubePartner#rightsOwnership",
"general": [
{
"ratio": 100,
"owner": "Indmusic",
"type": "exclude"
}
]
}
}

「所有者」にアクセスすると、リストされた値の代わりに undefined が返されます。

var url2 = _.sprintf('https://www.googleapis.com/youtube/partner/v1/assets/%s?fetchMetadata=effective&fetchOwnership=effective&key=%s',id,API_KEY);
var result2 = JSON.parse(UrlFetchApp.fetch(url2, getUrlFetchOptions()).getContentText());
Logger.log(result2.ownership.general.owner);

未定義を返します

所有権有効と所有権の両方を試しましたが、どちらも未定義です。result2.ownership.general からデータをログに記録できますが、それより下にはありません。

4

1 に答える 1

1

次の [大かっこ] によって、general が配列であることがわかります。

"general": [
  {
  "ratio": 100,
  "owner": "Indmusic",
  "type": "exclude"
}
]

試してください: Logger.log(result2.ownership.general[0].owner);

general は配列として宣言されているため、配列内に項目が 1 つしかない場合でも位置 [0] が必要です。

于 2013-09-19T02:00:33.220 に答える