我已经获得了分析工作的代码,因此它可以设法查询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"
}
}
答案 0 :(得分:1)
当您运行第一个时,您会询问用户是否可以访问您的Google Analytics数据,用户说是,您可以获得可用于访问其Google分析数据的访问令牌。
在第二个问题中,您询问用户是否可以访问您的网站管理员工具数据,用户说是,您获得访问令牌以访问其网站工具数据。
如果您将两个范围放在哪里,而不是只提供一个用户,我可以访问您的Google Analytics数据和您的网络主工具数据。如果他们说是,你会得到一个访问令牌来访问它们。
如果您尝试使用分析验证请求中的身份验证来访问Web主工具,您将获得权限不足。
如果您需要访问这两者,则请求访问这两者。如果你第一次想要一个,那么可能以后想要另一个,那么是的,你将不得不再问他们另一个。