Google API Сервер для аутентификации сервера PHP - PullRequest
0 голосов
/ 01 марта 2019

Эта проблема сводит меня с ума - я создал учетную запись службы Google в соответствии с инструкциями на этой странице

https://developers.google.com/shopping-content/v2/quickstart

и у меня есть файл .json

Я скачал библиотеку google api из git и написал следующий код PHP

require_once 'vendor/autoload.php';

putenv('GOOGLE_APPLICATION_CREDENTIALS=content-api-key.json');

$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope('https://www.googleapis.com/auth/content');

$httpClient = $client->authorize();
$response = $httpClient->get('https://www.googleapis.com/content/v2/********/accounts');

print_r($response);

Где я заменяю ***** - это мой идентификатор продавца.

Как ни важно, чтоя пытаюсь не могу подключиться и получаю следующую ошибку.

GuzzleHttp\Psr7\Response Object
(
    [reasonPhrase:GuzzleHttp\Psr7\Response:private] => Unauthorized
    [statusCode:GuzzleHttp\Psr7\Response:private] => 401
    [headers:GuzzleHttp\Psr7\Response:private] => Array
        (
            [Vary] => Array
                (
                    [0] => X-Origin
                    [1] => Origin,Accept-Encoding
                )

            [WWW-Authenticate] => Array
                (
                    [0] => Bearer realm="https://accounts.google.com/", error=invalid_token
                )

Это мое последнее средство.У меня есть учетная запись для делегирования домена.

Любая помощь?

Джон

1 Ответ

0 голосов
/ 04 марта 2019

Несанкционированный

Означает, что учетная запись, с которой вы проходите аутентификацию, не имеет доступа к тому, что вы пытаетесь сделать.

Сервисная учетная запись

Необходимо помнить, что служебная учетная запись - это не вы.Это также не учетная запись, которая создала его на консоли разработчика.Служебная учетная запись - фиктивный пользователь, у которого она есть в учетной записи календаря на учетной записи накопителя, и вы можете предоставить ей доступ с помощью Merchant Account

Пераавторизация учетной записи службы

Убедитесь, что вы* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 10 НЕОБЫ);*

Добавьте новую учетную запись службы в качестве пользователя в свою учетную запись Merchant Center.Если вы сторонний разработчик, вам нужно, чтобы ваш клиент выполнил этот шаг за вас. Перейдите в свою учетную запись Merchant Center. Перейдите к списку «Пользователи» в настройкахвашей учетной записи Merchant Center. Нажмите кнопку + и используйте идентификатор учетной записи службы в качестве адреса электронной почты для нового пользователя. Если вы ранее не указывали идентификатор учетной записи службыперейдите на страницу администрирования учетных записей служб и выберите созданный вами проект. Укажите доступ пользователя и уведомления по электронной почте, обратите внимание, что для использования службы учетных записей требуется доступ администратора.Добавить снимок страницы пользователя учетной записи службы. Нажмите на синее поле слева от кнопки Отмена.Вы вернетесь к списку пользователей, и идентификатор учетной записи службы должен быть указан с выбранными ролями пользователя. Повторите процедуру для всех остальных учетных записей службы, которые вы хотите добавить. Просмотр существующих пользователей учетной записи службы, перейдя на вкладку Пользователи.Это будут пользователи с адресом электронной почты, оканчивающимся на «gserviceaccount.com».
...