1

У меня есть код для работы аналитики, чтобы он мог запрашивать Google Analytics и возвращать результаты, однако, когда я пытаюсь использовать этот код для запроса инструментов для веб-мастеров, он возвращается с Недопустимые разрешения.Инструменты для веб-мастеров Google Analytics Недостаточно разрешений

Google Включенные API являются: Analytics API, Google Search Console API

Есть ли что-то мне не хватает?

Google Analytics Код:

$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)); 
} 

Webmaster Tools Код:

$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)); 
} 

Webmaster Сообщение Инструменты Error:

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

Является ли веб-мастером auth working, он запрашивает доступ для этого? – DaImTo

+0

Он не запрашивал авторизацию, так как я использую тот же код, что и аналитика, я не думал, что мне нужно авторизовать его снова. Он возвращает ошибку: «код»: 403, «сообщение»: «Недостаточное разрешение» – MrHappySandwich

+0

Является ли ситуация ситуацией, когда мне нужно удалить доступ и запросить доступ с помощью нового включенного API? – MrHappySandwich

ответ

1

При запуске первый вы спросите пользователя может я доступа к данным Google Analytics, пользователь говорит «да», и вы получаете токен доступа, который можно использовать d для доступа к их данным Google Analytics.

Во втором случае вы спрашиваете у пользователя, могу ли я получить доступ к данным инструментов веб-мастеров, которые пользователь говорит «да», вы получаете токен доступа, чтобы получить доступ к данным данных веб-матер.

Если вы хотите разместить обе области видимости вместо одного пользователя, я могу получить доступ к вашим данным Google Analytics и вашим данным веб-мастеров. Если они говорят «да», вы получаете токен доступа для доступа к ним обоим.

Если вы попытаетесь использовать аутентификацию из запроса аналитики Auth для доступа к веб-мастер-инструментам, вы получите Недостаточные разрешения.

Если вам нужен доступ к обоим, то запросите доступ к обоим. Если вы сначала захотите, то, возможно, позже захотите другого, тогда да, вам придется попросить их позже.

+1

Спасибо, я отменил доступ, а затем снова запустил его и код работал. – MrHappySandwich