Я создал сервисную учетную запись и ниже указан мой код:
$client = new Google_Client();
$client->setApplicationName("Console_Client");
$client->setAuthConfigFile('xxaax.json');
$scopes = [
//"https://www.googleapis.com/auth/webmasters",
//"https://www.googleapis.com/auth/webmasters.readonly"Google_Service_Webmasters::WEBMASTERS_READONLY,
Google_Service_Webmasters::WEBMASTERS,
];
$client->setScopes($scopes);
$client->setAccessType('offline');
$service = new Google_Service_Webmasters($client);
$request = new Google_Service_Webmasters_SearchAnalyticsQueryRequest();
$optParams = array('siteUrl' => 'https://www.test.co/');
$request->startDate = "2018-01-01";
$request->endDate = "2018-01-02";
$results = $service->searchanalytics->query($optParams, $request);
Я получаю это сообщение об ошибке в ответ:
Неустранимая ошибка PHP: Uncaught Google_Service_Exception
«причина»: «Недостаточно прав доступа»
Я включил этот API в своем аккаунте, а также могу использовать его при попытке открыть Google API Explorer.
Почему это происходит?
Для этого нам нужно создать сервисный аккаунт. Это предпочтительно в случае, когда вы нажимаете API с консоли, и у вас нет веб-интерфейса для OAuth2.0.
Для этого конкретного случая есть идентификатор учетной записи службы (выглядит как длинная строка электронной почты). Скопируйте это и добавьте его в свой аккаунт Google.
Выполнение выше решило мою проблему.
Этот шаг не был понятен в документации Google API.
Надеюсь, это поможет кому-то в будущем.
Других решений пока нет …