所以我向具有以下范围的youtube分析提出请求:
'scope' => 'https://www.googleapis.com/auth/yt-analytics.readonly https://gdata.youtube.com https://www.googleapis.com/auth/userinfo.profile'
使用我的访问令牌我尝试获取上个月的频道订阅者列表,如下所示:
$command = 'curl -H "Authorization: Bearer ' . $access_token . '"https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-07-01&end-date-2016-08-31&metrics=views&dimensions=day&sort=day';
exec($command, $result);
即使我成功获取了访问令牌并保存了用户的凭据,我从这个请求得到的是:
array(0) { }
没有任何错误。有谁知道为什么会发生这种情况。如果您需要更多细节,请问我。我正在解决这个问题,所以我真的需要一些帮助。欢迎任何帮助。谢谢大家的时间! 这是我在API Explorer中发出请求所得到的:
{
"kind": "youtubeAnalytics#resultTable",
"columnHeaders": [
{
"name": "day",
"columnType": "DIMENSION",
"dataType": "STRING"
},
{
"name": "views",
"columnType": "METRIC",
"dataType": "INTEGER"
}
]
}
答案 0 :(得分:0)
我找到了解决问题的方法。在我的请求中,结束日期有一个拼写错误:
end-date-2016-08-31
正确的版本如下所示:
end-date=2016-08-31
我打电话的网址必须有引号。 所以我正确的电话看起来像这样:
$command = 'curl -H "Authorization: Bearer ' . $access_token . '" "https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=' . date('Y-m-d', strtotime('-31 days')) . '&end-date=' . date('Y-m-d', strtotime('today')). '&metrics=subscribersGained%2CsubscribersLost&dimensions=day&sort=day"';
感谢您的时间!