YouTube Analytics API PHP Неверный запрос. Запрос не соответствует ожиданиям

Я пытаюсь сделать некоторые аналитические запросы от сервера к серверу.
Я использую Laravel с https://github.com/google/google-api-php-client библиотека.

Это код, который я использую:

    $client = new Google_Client();
$key = file_get_contents(storage_path('key.p12'));
$cred = new Google_Auth_AssertionCredentials(
'***@developer.gserviceaccount.com', array('https://www.googleapis.com/auth/youtube.readonly', 'https://www.googleapis.com/auth/yt-analytics.readonly'), $key);
$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}

Session::put('service_token', $client->getAccessToken());$service = new Google_Service_YouTubeAnalytics($client);
$id = 'channel==MINE';
$start_date = '2014-05-01';
$end_date = '2014-06-30';

$optparams = array(
'dimensions' => 'day',
'sort' => 'day,-views'
);

$metric = 'views,estimatedMinutesWatched';

$api = $service->reports->query($id, $start_date, $end_date, $metric, $optparams);

$service = new Google_Service_YouTubeAnalytics($client);
$id = 'channel==MINE';
$start_date = '2014-05-01';
$end_date = '2014-06-30';

$optparams = array(
'dimensions' => 'day',
'sort' => 'day,-views'
);

$metric = 'views,comments,favoritesAdded,likes,dislikes,estimatedMinutesWatched,averageViewDuration';//'views,estimatedMinutesWatched';

$api = $service->reports->query($id, $start_date, $end_date, $metric, $optparams);

Моя проблема в том, что проверка подлинности работает просто отлично, но я не могу заставить работать аналитический запрос, я получаю следующую ошибку:

Error calling GET https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2014-05-01&end-date=2014-06-30&metrics=views%2CestimatedMinutesWatched&dimensions=day&sort=day%2C-views: (400) Invalid query. Query did not conform to the expectations.

Хотя тот же самый точный запрос работает в проводнике API:
https://developers.google.com/apis-explorer/#p/youtubeAnalytics/v1/youtubeAnalytics.reports.query?ids=channel%253D%253DMINE&старт-дата = 2014-05-01&конец дата = 2014-06-30&Метрики = мнения% 252CestimatedMinutesWatched&Размеры = день&сортировать = день% 252C-просмотры&_h = 1&

Любая идея?

1

Решение

Я проверил ваш запрос, и он работает нормально, но, очевидно, YouTube не поддерживает учетные записи служб. документация говорит, что должно вернуть 403 в этом случае, но по какой-то причине он возвращается 400,

3

Другие решения

Вам нужно добавить ключ API Google

https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2014-05-01&end-date=2014-06-30&metrics=views%2CestimatedMinutesWatched&dimensions=day&sort=day%2Cviews&key={YOUR_API_KEY}

также, если вы посмотрите на вашу строку, у вас будет ошибка типа в конце, где «-views» должны быть просто «views» без тире
Вы можете использовать автоматизированный инструмент Google для создания действительной ссылки.

https://developers.google.com/youtube/analytics/v1/

0

По вопросам рекламы [email protected]