2015-06-09 2 views
1

Я пытаюсь проверить подлинность учетной записи службы Google, используя Outh2, но получаю эту ошибку -Google исключение аутентификации PHP апите

Исключения - Ошибка при обновлении маркеров OAuth2, сообщения: «{„ошибка“: «ACCESS_DENIED "," error_description ":" Запрошенный клиент не авторизован. " }»

Я следовал каждой инструкции по https://developers.google.com/api-client-library/php/auth/service-accounts я тоже авторизовать учетную запись службы от Google консоли администратора, но до сих пор нет удачи. Кто-нибудь может предложить, если в коде ниже есть что-то неправильное -

$client_email = [email protected]'; 
     $private_key = file_get_contents('private_key_file_location.p12'); 
     $scopes = array('https://spreadsheets.google.com/feeds'); 
     $user_to_impersonate = '[email protected]'; 
     $credentials = new Google_Auth_AssertionCredentials($client_email, $scopes, 
                  $private_key, 'notasecret', 
                  'http://oauth.net/grant_type/jwt/1.0/bearer', 
                  $user_to_impersonate); 

     $client = new Google_Client(); 

     $client->setApplicationName('Portal Assessment Module'); 
     $client->setAccessType('offline'); 

     $client->setAssertionCredentials($credentials); 
     if ($client->getAuth()->isAccessTokenExpired()) { 
      $client->getAuth()->refreshTokenWithAssertion($credentials); /* Exception 
is being triggered here */  
} 

Спасибо.

ответ

0

Наконец понял это, должен был убедиться, что $ user_to_impersonate такими же, как $ client_email, а также адрес электронной почты, который имеет редактировать доступ к таблицам.

$user_to_impersonate = $client_email 
0

Попробуйте

require_once realpath(dirname(__FILE__).'/google-api-php-client/src/Google/autoload.php'); 

define('SCOPES', implode(' ', array(Google_Service_Appsactivity::DRIVE))); 

$credentials = new Google_Auth_AssertionCredentials(
    $client_email, 
    SCOPES, 
    $private_key 
); 

$client = new Google_Client(); 
$client->setAssertionCredentials($credentials); 

if ($client->getAuth()->isAccessTokenExpired()) 
{ 
    $client->getAuth()->refreshTokenWithAssertion(); 
} 

print_r($client->getAccessToken()); 
+0

Спасибо за код, но получил его для работы, используя ответ, который я разместил – Sandeep

Смежные вопросы