网站管理员API用户没有足够的网站权限

时间:2015-01-22 02:35:00

标签: google-api google-api-php-client google-webmaster-tools

我使用google-api-php-client库来访问网站管理员工具数据。当我想列出站点地图时,它出现了致命错误:未捕获的异常' Google_Service_Exception'(403)用户没有足够的站点权限。另请参阅:https://support.google.com/webmasters/answer/2451999。' 我将服务帐户电子邮件地址添加为我的网站的限制用户,但错误仍然存​​在。

最后我找到答案: 服务帐户与常规Google帐户不同。 您无法使用它来访问特定资源,即使您提供了特定地址"访问"它。有关您可以向网站站长API授权请求的不同方式,请参阅here

2 个答案:

答案 0 :(得分:1)

服务帐户与常规Google帐户不同。即使您提供了特定地址,也无法使用它来访问特定资源"访问"它。

您需要通过Webmaster Admin管理服务权限。添加您的服务帐户

  

whatever@developer.gserviceaccount.com

那里。

答案 1 :(得分:1)

对我来说,问题不是实际的许可权,而是域名的传递方式。这是我的Node.js示例,但PHP也是如此:

import {JWT} from 'google-auth-library';

const client = new JWT(
    null,
    'service-account.json',
    null,
    ['https://www.googleapis.com/auth/webmasters.readonly'],
);
const res = await client.request({
    url: 'https://www.googleapis.com/webmasters/v3/sites/sc-domain:yourdomain.com/searchAnalytics/query',
    method: 'POST',
    data: {
        "startDate": "2020-04-01",
        "endDate": "2020-05-01",
        "dimensions": ["country", "device"]
    }
});

console.log(res.data);

请注意语法 sc-domain:yourdomain.com 。传递“ yourdomain.com”将导致错误User does not have sufficient permission for site yourdomain.com