使用youtube数据api时,从列表通道返回的json将解析统计信息但不解析topicDetails。下面是我返回数据的基本代码。
$part ='topicDetails,statistics';
$response = $service->channels->listChannels($part,$channel_id);
$topic = $response->items[0];
return $topic;
返回
[statistics] => Array
(
[viewCount] => 230769010
[commentCount] => 92
[subscriberCount] => 1540335
[hiddenSubscriberCount] =>
[videoCount] => 526
)
[topicDetails] => Array
(
[topicIds] => Array
(
[0] => /m/02vxn
[1] => /m/02jjt
[2] => /m/019_rr
[3] => /m/03glg
[4] => /m/02vxn
)
下面的代码解析json的统计信息,并且工作正常
$response = $service->channels->listChannels($part,$channel_id);
$topic = $response->items[0]->statistics;
return $topic;
The code above returns 这是奇怪的地方。下面的代码应解析topicDetails但错误。
$response = $service->channels->listChannels($part,$channel_id);
$topic = $response->items[0]->topicDetails;
return $topic;
这是我在尝试解析topicDetails时遇到的错误 error pic
非常感谢任何想法或帮助。几天前相同的代码工作。也许youtube api改变了。感谢
答案 0 :(得分:0)
我们现在遇到同样的问题。
编辑***解决方案
我相信youtube已将api调用中的返回对象更改为包含[' modelData'],该对象受到保护,因此您必须将其编入索引。
将您的回复设置为
$response['items'][0];
然后在文件中调用函数设置响应的任何变量:
$channel_info=youtubeFunctionName(params);
然后你必须解析索引[' modelData']以获取主题详情。
$channel_info=$channel_info['modelData']['topicDetails']['topicIds']
现在没有意义的是为什么你能够在没有索引[' modelData']的情况下提取['统计数据']。希望youtube提供有关更改的文档。