firebase — получите токен доступа к Firestore для REST api с помощью google-api-php lib

Я пытаюсь получить токен доступа, чтобы сделать ОСТАЛЬНОЕ звонки на мой 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 для моей учетной записи службы. Кто-нибудь знает, как я могу получить токен доступа?

3

Решение

  1. Если вы хотите добавить несколько областей, вам придется использовать массив вместо строки. Строка будет обрабатываться только как одна отдельная область.

  2. $client->authorize() возвращает Client экземпляр, которому разрешен доступ к Службам Google для указанных областей. Так, $authorizedClient = $client->authorize(); было бы более уместным.

  3. Если вы просто хотите получить токен доступа, вы можете использовать $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());
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]