2013-08-13 2 views
0

Я пытаюсь получить имя пользователя Youtube через google plus api. Я использую php Services из Plus ang YT api, и я использую symfony 2. Получение доступа к токенам работает нормально, и я не собираюсь его размещать. У вас также нет проблем с сервисом google plus, после авторизации я получаю всю необходимую мне информацию. В случае с YT, я получаю сообщение об ошибке: Недопустимая ошибка Permissions Итак, я проверяю область доступа токена здесь: https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ACCESS_TOKEN и область моего токена доступа предназначена только для Google Plus, я не могу заставить Google Api php чтобы сделать область YT доступной также. Любые идеи?Получить имя пользователя youtube из google Plus api - область доступа к токенам недостаточнаПубликации

Вот мой код:

require_once '../src/google_api_php_client/src/Google_Client.php'; 
require_once '../src/google_api_php_client/src/contrib/Google_PlusService.php'; 
require_once '../src/google_api_php_client/src/contrib/Google_YouTubeService.php'; 

$client = new Google_Client(); 
$client->setScopes('https://www.googleapis.com/auth/youtube https://www.googleapis.com/auth/plus'); 

$youtube = new Google_YouTubeService($client); 

if(!empty($allR['code'])){ 
    $client->setClientId('clientIDxxx'); 
    $client->setClientSecret('SecretXXX'); 
    $client->setRedirectUri('postmessage'); 
    $client->authenticate($allR['code']); 
    $token = json_decode($client->getAccessToken()); 
} 

ответ

0

Прежде всего, убедитесь, что вы включили API данных YouTube v3 ром ваш devconsole.

Затем вместо того, чтобы устанавливать области, попробуйте установить идентификатор клиента и секрет с devconsole.

$client = new Google_Client(); 
$client->setClientId($OAUTH2_CLIENT_ID); 
$client->setClientSecret($OAUTH2_CLIENT_SECRET); 
$redirect = filter_var('http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'], 
    FILTER_SANITIZE_URL); 
$client->setRedirectUri($redirect); 

// YouTube object used to make all Data API requests. 
$youtube = new Google_YoutubeService($client); 

$plus = new $youtube = new Google_PlusService($client); 
Смежные вопросы