php | Google网站站长API服务帐户没有权限

时间:2015-11-14 11:53:14

标签: php google-webmaster-tools service-accounts google-client

我使用以下代码从搜索控制台获取我的网站的统计信息:

$client = new Google_Client();
$creds = $client->loadServiceAccountJson('---JSON FILE---', 'https://www.googleapis.com/auth/webmasters.readonly');
$client->setAssertionCredentials($creds);


$service = new Google_Service_Webmasters($client);

$ressource = $service->searchanalytics;

$options = new Google_Service_Webmasters_SearchAnalyticsQueryRequest();
$options->setStartDate('2015-11-11');
$options->setEndDate('2015-11-11');

try{
    $response = $ressource->query('http://www.example.com/', $options);
} catch (Exception $e){
    echo $e->getMessage();
}

我使用Google服务帐户授权api调用,但它给了我错误:

  

调用POST https://www.googleapis.com/webmasters/v3/sites/http%3A%2F%2Fwww.example.com%2F/searchAnalytics/query时出错:(403)用户对网站' http *://www.example.com/'没有足够的权限。另见:https://support.google.com/webmasters/answer/2451999

我还将服务帐户的电子邮件地址作为所有者添加到我的搜索控制台属性中,但错误仍然存​​在。我不知道,我做错了什么?

2 个答案:

答案 0 :(得分:1)

所以这个问题正在被解决!

问题首先是你必须将服务帐户添加到搜索控制台属性,然后授予它权限,然后让他成为所有者,你不会再次获得权限错误!

在这里找到解决方案: Google Webmasters API for Java returns empty site list

答案 1 :(得分:0)

检查网站列表中是否列出了该属性:https://developers.google.com/webmaster-tools/v3/sites/list

仔细检查属性网址中的https和www。