Я не могу получить список Locations из моей компании по моему коду (PHP использует " Клиентскую библиотеку API Google для PHP " вместе с " Google_Service_MyBusiness " Классами), когда яиспользуйте аутентификацию "Сервисная учетная запись" , API возвращает пустой список местоположений.
У меня уже есть Предпосылки и выполнена Базовая настройка кстати, я с успехом получил информацию об OAuth Playground под определенным AccountId, например: 1111111111, предоставленную другим ответом там на «OAuth Playground».(PS: я проверил с моими учетными записями «PERSONAL» и «LOCATION_GROUP» и добился успеха с обоими).
Но когда я пытаюсь сделать это через мой код через аутентификацию учетной записи сервера, я не могу получить всеинформация, только данные учетной записи, которые возвращают другой AccoundId, например, 2222222222, отличающийся от учетных записей, которые я получил на OAuth Playground.
Я выполнял процесс аутентификации на OAuth Playground, используя тот же проект, в котором я создал "Сервисная учетная запись ", кстати, разрешение этой" Сервисной учетной записи "является ВЛАДЕЛЕЦОМ.
Раньше моя роль в моей компании в Google My Business была" SITE_MANAGER ", поэтому я увидел форумответ , где только уровень / роль «МЕНЕДЖЕР» может перечислять местоположения, поэтому я попросил изменить свое разрешение, но это не помогло в списке местоположений.
Итак, я увидел еще один GoogleВ статье поддержки моего бизнеса , в которой рекомендуется создать «Группу местоположений» и поместить мое текущее «Местоположение» в эту группу, чтобы упростить ее обработку, я сделал этои снова безуспешно.
Мой код прост, основан на Руководстве Google , OAuth 2.0 для серверных приложений и некоторых Вопрос на форуме s (кстати, вопрос автора имеет ту же проблему, что и я):
<?php
putenv('GOOGLE_APPLICATION_CREDENTIALS=service-account-credentials.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->addScope("https://www.googleapis.com/auth/plus.business.manage");
require_once('Google_Service_MyBusiness.php');
$mybusinessService = new Google_Service_MyBusiness($client);
$accounts = $mybusinessService->accounts;
$accountsList = $accounts->listAccounts()->getAccounts();
foreach ($accountsList as $accKey => $account) {
var_dump('$account->name', $account->name);
$locations = $mybusinessService->accounts_locations;
$locationsList = $locations->listAccountsLocations($account->name)->getLocations();
var_dump('$locationsList', $locationsList);
// Final Goal of my Code
if (empty($locationsList)===false) {
foreach ($locationsList as $locKey => $location) {
$reviews = $mybusinessService->accounts_locations_reviews;
$listReviewsResponse = $reviews->listAccountsLocationsReviews($location->name);
$reviewsList = $listReviewsResponse->getReviews();
var_dump('$reviewsList', $reviewsList);
}
}
}
Я ожидал Местоположение моей компании (также отзывы, но это следующий шаг), но я только что получил пустое Местоположениесписок.