尝试从listChannels解析topicDetails时出现奇怪的错误

时间:2018-03-19 05:29:53

标签: youtube-api youtube-data-api

使用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改变了。感谢

1 个答案:

答案 0 :(得分:0)

我们现在遇到同样的问题。

编辑***解决方案

我相信youtube已将api调用中的返回对象更改为包含[' modelData'],该对象受到保护,因此您必须将其编入索引。

将您的回复设置为

$response['items'][0];

然后在文件中调用函数设置响应的任何变量:

$channel_info=youtubeFunctionName(params);

然后你必须解析索引[' modelData']以获取主题详情。

$channel_info=$channel_info['modelData']['topicDetails']['topicIds']

现在没有意义的是为什么你能够在没有索引[' modelData']的情况下提取['统计数据']。希望youtube提供有关更改的文档。