我正在使用YouTube数据API请求来获取频道ID,但我不太清楚为什么它不起作用:
我得到的返回JSON请求是:
{
"kind": "youtube#channelListResponse",
"etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/k5qSWj-xcF96jAN3p1uQH1amSRc\"",
"pageInfo": {
"totalResults": 1,
"resultsPerPage": 5
},
"items": [
{
"kind": "youtube#channel",
"etag": "\"PSjn-HSKiX6orvNhGZvglLI2lvk/e1xTbLf6JLhwwzeWbdMfWdPfcwg\"",
"id": "UC-lHJZR3Gqxm24_Vd_AJ5Yw"
}
]
}
要提取JSON数据我正在使用几行代码和php中的函数:
$banner_data = file_get_contents('https://www.googleapis.com/youtube/v3/channels?part=brandingSettings&forUsername=pewdiepie&key=AIzaSyDTxvTLWXStUrhzgCDptVUG4dGBCpyL9MY');
$banner_data = json_decode($banner_data, true);
$YTid = $banner_data['items']['id'];
当我:
echo "YouTube Channel Id Of pewdiepie is " . $YTid . ".<br />";
我没有获得频道ID?我的问题是什么?
答案 0 :(得分:1)
Items是一个包含一个或多个对象的数组。所以它必须是:
$YTid = $banner_data['items'][0]->id;
通过这种方式,您可以抓住“ID&#39;来自items-array中的第一项。
BTW:学习调试对于学习编码至关重要。如果您解码json然后打印结果,您可以看到数组的结构,这可以帮助您找到问题,如:$banner_data = json_decode($banner_data, true);
var_dump($banner_data);
答案 1 :(得分:1)
请改为尝试:
$YTid = $banner_data['items'][0]['id'];