У меня возникла странная проблема с клиентом API консоли Google Search (PHP). Прошлой ночью он работал (в конце концов), а затем этим утром тот же самый код больше не работал. Вместо получения данных в Google Analytics я получаю ошибку 401 «Недопустимые учетные данные».API-интерфейс Google Search Console (PHP) - разрешает один день, а затем на следующий день я получаю сообщение об ошибке «Неверные учетные данные»
Редактировать: У меня есть setSubject, закомментированный, поскольку он работал без этой прошлой ночи. Я пробовал сегодня с этим прокомментированным и без комментариев и не работал.
Редактировать 2: Я думал, что у меня это исправлено. Я изменил области, поэтому у него были оба типа области для API Search Console. Он снова начал загружать данные. Затем через час или два он снова начал возвращать ошибки «Недействительные учетные данные». Затем я изменил положение областей в массиве $ scopes и снова начал работать. Кажется, что-то что-то не так.
Вот мой код:
namespace App\Services;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Config;
class Google {
private function googleApiAuthorise()
{
$client = new \Google_Client();
putenv('GOOGLE_APPLICATION_CREDENTIALS=/keys/Tool-xxxxxxxxxx.json');
$client->useApplicationDefaultCredentials();
//$client->setSubject('[email protected]');
$scopes = ['https://www.googleapis.com/auth/webmasters.readonly'];
$client->setScopes($scopes);
if($client->isAccessTokenExpired()) {
$client->refreshTokenWithAssertion();
}
return $client;
}
public function getSearchAnalytics()
{
$client = Google::googleApiAuthorise();
$service = new \Google_Service_Webmasters($client);
$request = new \Google_Service_Webmasters_SearchAnalyticsQueryRequest;
$request->setStartRow(0);
$request->setStartDate('2016-06-01');
$request->setEndDate('2016-10-02');
$request->setSearchType('web');
$request->setRowLimit(100);
$request->setDimensions(array('query','country','device','page'));
$query_search = $service->searchanalytics->query("http://www.example.com/", $request);
$rows = $query_search->getRows();
return $rows;
}
}
Я тогда контроллер:
$result = $google->getSearchAnalytics();
var_dump($result);
Когда я посещаю маршрут, который запускает этот контроллер я получаю 401 «недействителен». Я хотел бы повторно повторить эту прошлую ночь, этот код работает и возвращает результаты для API Google Search Console.
Я думаю, что я собираюсь использовать только OAuth, но у меня тоже есть проблемы с этим! – DL1984