1

我收到了分析代码的工作方式,以便管理查询Google Analytics并返回结果,但是当我尝试使用代码查询网站站长工具时,它返回的权限不足。谷歌分析网站管理员工具权限不足

谷歌启用API的是:分析API,谷歌搜索API控制台

有什么我失踪?

谷歌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" 
} 
} 
+0

是webmater工具auth工作请求访问吗? – DaImTo

+0

它没有请求授权,因为我使用与分析相同的代码,我不认为我需要再次授权。它返回错误:“代码”:403, “消息”:“权限不足” – MrHappySandwich

+0

这是一种情况,我需要使用新的已启用API删除访问和请求访问? – MrHappySandwich

回答

1

当您运行的第一个你问用户可以我访问您的谷歌分析数据,用户说是的,你可以得到一个可以使用的访问令牌d访问他们的谷歌分析数据。

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

如果您将两个示波器放在哪里而不是一个用户会问我可以访问您的谷歌分析数据和您的网站管理员工具数据。如果他们说是,你会得到一个访问令牌来访问它们。

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

如果您需要访问两者然后请求访问两者。如果你第一次想要一个,那么也许以后想要另一个,那么是的,你将不得不在晚些时候再要求他们。

+1

谢谢,我撤销了访问权限,然后再次运行并且代码正常工作。 – MrHappySandwich

相关问题