У меня есть аккаунт на YouTube с 5 каналами. С помощью API YouTube Analytics я могу получать данные из основного канала YouTube. Но на других каналах я всегда получаю сообщение об ошибке
запрещено
Также я являюсь владельцем всех этих каналов.
Вот мой исходный код:
$client = new Google_Client();
$client->setAuthConfig('client_secrets.json');
$client->setScopes( array(
'https://www.googleapis.com/auth/youtube.force-ssl',
'https://www.googleapis.com/auth/youtubepartner-channel-audit',
'https://www.googleapis.com/auth/youtube',
'https://www.googleapis.com/auth/youtube.readonly',
'https://www.googleapis.com/auth/yt-analytics.readonly',
'https://www.googleapis.com/auth/yt-analytics-monetary.readonly',
'https://www.googleapis.com/auth/youtubepartner')
);
$client->setAccessType("offline");
$json_str = file_get_contents("access_token.json");
$json = json_decode($json_str, true);
if (isset($json['access_token']) && $json['access_token']) {
$client->setAccessToken($json_str);
$youtube = new Google_Service_YouTubeAnalytics($client);
$report = $youtube->reports->query('channel==UC0xxxxxxxxxxx', '2017-04-01', '2017-04-30', 'views');
echo json_encode($report);
} else {
$redirect_uri = 'https://xxxxxxxxxx/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
Если у меня есть в запросе команды channel==MINE
или YouTube Channel-ID
(UC0xxxxxxx
) очень хорошо работает. Но другой Channel-ID
с того же аккаунта YouTube я получаю эту ошибку:
PHP Fatal error: Uncaught exception 'Google_Service_Exception' with message '{
"error": {
"errors": [
{
"domain": "global",
"reason": "forbidden",
"message": "Forbidden"}
],
"code": 403,
"message": "Forbidden"}
}
Как я могу это исправить?
Задача ещё не решена.
Других решений пока нет …