1

Google 애널리틱스를 쿼리하고 결과를 다시 가져올 수 있도록 애널리틱스 코드가 있습니다. 그러나 코드를 사용하여 웹 마스터 도구를 쿼리하려고 할 때 불충분 한 권한이 다시 발생합니다.Google 애널리틱스 웹 마스터 도구 불충분 한 권한

구글 사용 API의의는 다음과 같습니다 웹 로그 분석 API, Google 검색 콘솔 API

내가 놓친 거지 뭔가가 있나요?

Google 웹 로그 분석 코드 :

$client = new Google_Client(); 
$client->setAuthConfigFile($SECRET); 
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY); //For analytics stuff 
$client->setAccessType('offline'); 
$client->setPrompt('prompt'); 

if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { 
    $client->setAccessToken($_SESSION['access_token']); 

    //Checking to see if the token is expired 
    if($client->isAccessTokenExpired()){ 
     $client->refreshToken($refreshToken); 
     $_SESSION['access_token'] = $client->getAccessToken(); 
    } 

    $results = $analytics->data_ga->get(
     $viewID, 
     $fromDate, 
     $toDate, 
     $metrics, 
     $optParams); 


    foreach($results->rows as $data){ 
     echo "<pre>",print_r($data),"</pre>"; 
    } 
}else { 
    $redirect_uri = $redirectURL; 
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
} 

웹 마스터 도구 코드 :

$client = new Google_Client(); 
$client->setAuthConfigFile($SECRET); 
$client->addScope(Google_Service_Webmasters::WEBMASTERS_READONLY); //For WebMaster Tools 
$client->setAccessType('offline'); 
$client->setPrompt('prompt'); 


if (isset($_SESSION['access_token']) && $_SESSION['access_token']) { 
    $client->setAccessToken($_SESSION['access_token']); 

    //Checking to see if the token is expired 
    if($client->isAccessTokenExpired()){ 
     $client->refreshToken($refreshToken); 
     $_SESSION['access_token'] = $client->getAccessToken(); 
    } 
    //Creating Webmaster Service 
    $webmastersService = new Google_Service_Webmasters($client); 
    $searchanalytics = $webmastersService->searchanalytics; 

    //Creating Request 
    $request = new Google_Service_Webmasters_SearchAnalyticsQueryRequest(); 
    $request->setStartDate('2016-05-01'); 
    $request->setEndDate('2016-05-31'); 
    $request->setDimensions(array('query')); 

    $qsearch = $searchanalytics->query("http://www.example.co.uk", $request); 
    $rows = $qsearch->getRows(); 
    echo "<pre>",print_r($rows),"</pre>"; 

} else { 
    $redirect_uri = $redirectURL; 
    header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL)); 
} 

웹 마스터 도구 오류 메시지 : 첫 번째 하나를 실행하면

{ 
"error": { 
    "errors": [ 
    { 
     "domain": "global", 
     "reason": "insufficientPermissions", 
     "message": "Insufficient Permission" 
    } 
    ], 
    "code": 403, 
    "message": "Insufficient Permission" 
} 
} 
+0

웹 마스터 도구는 인증 작업을 요청합니까? – DaImTo

+0

나는 인증을 요청하지 않았는데, 분석 코드와 동일한 코드를 사용하고 있기 때문에 다시 인증 할 필요가 없다고 생각합니다. "code": 403, "message": "Unsufficient Permission" – MrHappySandwich

+0

새로운 사용 가능한 API로 액세스를 제거하고 액세스 권한을 요청해야하는 상황입니까? – MrHappySandwich

답변

1

당신은 사용자에게 내가 할 수있는 사용자가 할 수 있다고 말한 Google 애널리틱스 데이터에 액세스하면 사용할 수있는 액세스 토큰을 얻을 수 있습니다. d를 클릭하면 Google Analytics 데이터에 액세스 할 수 있습니다.

두 번째 질문에서 사용자는 웹 마스터 도구 데이터에 액세스 할 수 있는지 묻습니다. 사용자는 웹 마스터 도구 데이터에 액세스하기 위해 액세스 토큰을 얻습니다.

사용자가 물어 보는 대신 하나의 스코프를 두 곳에 넣으면 Google 애널리틱스 데이터와 웹 마스터 도구 데이터에 액세스 할 수 있습니다. 그들이 yes라고 말하면 액세스 토큰을 사용하여 액세스 할 수 있습니다.

웹 마스터 도구에 액세스하기 위해 분석 인증 요청에서 인증을 사용하려고하면 불충분 한 권한이 부여됩니다.

둘 모두에 대한 액세스가 필요한 경우 둘 모두에 대한 액세스를 요청하십시오. 당신이 처음에 하나를 원한다면 나중에 다른 하나를 원한다면 예, 나중에 다른 하나를 요구해야합니다.

+1

고마워, 나는 액세스를 취소 한 다음 다시 실행하고 코드가 작동했습니다. – MrHappySandwich