Моя цель – сделать простейший запрос в 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 .