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

相關問題