Я пытаюсь получить информацию о своей компании через Google My Business API, но когда я пытаюсь получить информацию через свои google-api-php-client
Я просто получаю следующее сообщение:
Fatal error: Uncaught Google_Service_Exception: {
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."}
Я следил за их документацией (Вот а также Вот) но без везения.
Код:
$client = new Google_Client();
$client->setAuthConfig($ga_keyfile);
$client->addScope("https://www.googleapis.com/auth/plus.business.manage");
$client->setClientId($clientID);
$client->setApplicationName($appname);
$client->setAccessType('offline'); // offline access
$client->setSubject("*********@gmail.com");
$client->setIncludeGrantedScopes(true);
$mybusiness = new Google_Service_MyBusiness($client);
echo "<pre>";
print_r($mybusiness->accounts->listAccounts()->getAccounts());
echo "</pre>";
Также я заметил, что эта ошибка возникает только тогда, когда я делаю $client->setSubject("*********@gmail.com");
Если я пропускаю это, он делает запросы, но тогда нет доступного местоположения компании.
Я не уверен на 100%, если это из-за отсутствия согласия пользователя, но после поиска в Google это выглядит так.
Я не нашел никакой документации, объясняющей, как получить согласие пользователя.
Большинство из них объясняют, что это такое, но не как это сделать.
В качестве второго теста я попытался создать URL-адрес аутентификации с $auth_url = $client->createAuthUrl();
и настройка перенаправления URI $client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php');
(также попытался установить его в ничто: »)
Но тогда я получаю ошибку redirect_uri_mismatch. Что должно быть правильно, так как вы не можете установить URI перенаправления в учетной записи службы (или в этом случае клиент OAuth2 учетной записи службы)
Так как я могу исправить эту проблему?
Задача ещё не решена.
Других решений пока нет …