Пример учетной записи службы google возвращает «Ошибка обновления токена OAuth2 {« error »:« invalid_grant »}"

Моя цель – сделать простейший запрос в Google Fusion Tables от имени пользователей веб-приложений. Для этого я создал учетную запись службы на консоли Google. Вот код:

  // Creating a google client $client = new \Google_Client(); // setting the service acount credentials $serviceAccountName = 'XXXXX.apps.googleusercontent.com'; $scopes= array( 'https://www.googleapis.com/auth/fusiontables', 'https://www.googleapis.com/auth/fusiontables.readonly', ); $privateKey=file_get_contents('/path/to/privatekey.p12'); $privateKeyPassword='notasecret'; // the default one when generated in the console $credential = new \Google_Auth_AssertionCredentials($serviceAccountName, $scopes, $privateKey, $privateKeyPassword); // setting assertion credentials $client->setAssertionCredentials($credential); $service = new \Google_Service_Fusiontables($client); $sql = 'select name from XXXXXXXX'; $result = $service->query->sql($sql); 

После запуска этого кода я получил эту ошибку:

 Error refreshing the OAuth2 token, message: '{ "error" : "invalid_grant" }' 

Я googled, что в течение многих дней, и большинство ответов говорят об обновлении токена. Я сделал это обновление, но все же те же ошибки!

Любая идея для решения этой проблемы? благодаря

В моем случае это было вызвано слишком большим временем сервера (около 5 минут).

Хотя ваша проблема уже решена, возможно, это поможет любой, кто приземляется здесь в будущем, поскольку ошибка, возвращаемая Google, такая же.

Я знаю, что многие люди сталкиваются с той же проблемой, что и мои. Итак, это решение после нескольких дней поиска в google.

Код, который я предложил, имеет только одну ошибку: идентификатор клиента похож на электронное письмо, подобное 123456789-abcdebsbjf@developer.gserviceaccount.com

Второе, что вам нужно сделать, это обмениваться таблицей, которую вы запрашиваете в таблицах слияния Google, с идентификатором клиента учетной записи службы.

После этого все будет работать отлично.

Надеюсь, это поможет другим.

Я получил ту же ошибку в API Google Analytics, я решил ее, добавив свой Service accounts Email address с аналитической учетной записью Google .