Google Search Console API 클라이언트 (PHP)에 이상이 있습니다. 지난 밤에 (결국) 작동하고 있었고 오늘 아침에 똑같은 코드가 더 이상 작동하지 않습니다. 검색 애널리틱스 데이터를 가져 오는 대신 '유효하지 않은 자격증 명'이라는 401 오류가 표시됩니다.Google 검색 콘솔 API (PHP) - 다음 날에 다음 날에 권한을 부여합니다. '잘못된 자격증 명'오류가 발생합니다.
편집 : setSubject는 지난 밤에 작업하지 않았기 때문에 주석 처리했습니다. 나는 오늘 주석을 달고 주석을 없앴으며 노력하지도 않았다.
편집 2 : 수정 한 것으로 생각했습니다. Search Console API에 두 가지 유형의 범위가 모두 포함되도록 범위를 변경했습니다. 데이터를 다시 다운로드하기 시작했습니다. 그런 다음 1 ~ 2 시간 후 '잘못된 자격 증명'오류가 다시 표시되기 시작했습니다. 그런 다음 $ scope 배열에있는 범위의 위치를 바꿔서 다시 작업하기 시작했습니다. 어딘가에 뭔가 잘못된 것이있는 것 같습니다.
$result = $google->getSearchAnalytics();
var_dump($result);
나는 401 '잘못된 자격 증명'을 얻을이 컨트롤러를 트리거 경로를 방문
: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;
}
}
나는 다음 컨트롤러가 :
여기 내 코드입니다. 지난 밤에이 코드를 반복하여 Google의 Search Console API에 대한 결과를 반환하고 싶습니다.
저는 지금 OAuth를 사용하려고 합니다만, 문제도 있습니다. – DL1984