Google Analytics网站管理员工具权限不足

时间:2016-06-17 10:43:42

标签: php google-analytics google-webmaster-tools google-api-webmasters

我已经获得了分析工作的代码,因此它可以设法查询Google Analytics并带回结果,但是当我尝试使用代码查询网站管理员工具时,它会返回“权限不足”。

Google Enabled 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));
}

网站管理员工具代码:

$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"
 }
}

1 个答案:

答案 0 :(得分:1)

当您运行第一个时,您会询问用户是否可以访问您的Google Analytics数据,用户说是,您可以获得可用于访问其Google分析数据的访问令牌。

在第二个问题中,您询问用户是否可以访问您的网站管理员工具数据,用户说是,您获得访问令牌以访问其网站工具数据。

如果您将两个范围放在哪里,而不是只提供一个用户,我可以访问您的Google Analytics数据和您的网络主工具数据。如果他们说是,你会得到一个访问令牌来访问它们。

如果您尝试使用分析验证请求中的身份验证来访问Web主工具,您将获得权限不足。

如果您需要访问这两者,则请求访问这两者。如果你第一次想要一个,那么可能以后想要另一个,那么是的,你将不得不再问他们另一个。