Я пытаюсь получить токен доступа, чтобы сделать ОСТАЛЬНОЕ звонки на мой Firestore DB. Я использую PHP (пока единственный способ) и предпринял следующие шаги:
И создал этот код:
putenv('GOOGLE_APPLICATION_CREDENTIALS='.__DIR__ .'/key.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/datastore,https://www.googleapis.com/auth/cloud-platform');
$client->authorize();
Я также заменил
$client->useApplicationDefaultCredentials();
расставаться с
$client->setAuthConfig(__DIR__ .'/key.json');
Теперь, когда я var_dump $ client, токен остается NULL.
Я просто не могу понять, как получить access_token для моей учетной записи службы. Кто-нибудь знает, как я могу получить токен доступа?
Если вы хотите добавить несколько областей, вам придется использовать массив вместо строки. Строка будет обрабатываться только как одна отдельная область.
$client->authorize()
возвращает Client
экземпляр, которому разрешен доступ к Службам Google для указанных областей. Так, $authorizedClient = $client->authorize();
было бы более уместным.
Если вы просто хотите получить токен доступа, вы можете использовать $client->fetchAccessTokenWithAssertion()
что даст вам что-то вроде этого:
Array
(
[access_token] => ya29.c..............
[token_type] => Bearer
[expires_in] => 3600
[created] => 1511280489
)
Вот полный скрипт, который я использовал для проверки этого:
<?php
require __DIR__.'/vendor/autoload.php';
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope([
'https://www.googleapis.com/auth/datastore',
'https://www.googleapis.com/auth/cloud-platform'
]);
// $client->authorize();
print_r($client->fetchAccessTokenWithAssertion());
Других решений пока нет …