谷歌搜索控制台API:如何解决"User does not have sufficient permission for site"?(当用户具有权限时)



我正在尝试通过他们的Node包使用Google的搜索控制台API,我的代码如下:

const auth = new GoogleAuth({
  scopes: 'https://www.googleapis.com/auth/webmasters.readonly',
});
const webmasters = google.webmasters('v3');
const params = {
  auth,
  siteUrl: 'example.com',
  resource: {
    startDate: '2015-08-25',
    endDate: '2015-08-25',
    dimensions: ['query', 'page'],
    rowLimit: 10,
  },
  aggregationType: 'byPage',
};
const res = await webmasters.searchanalytics.query(params);
console.log(res.data);

除了在我的版本中CCD_ 1已被我的实际域所取代。

我在命令行调用它:

GOOGLE_APPLICATION_CREDENTIALS="/path/to/service_key.json" node index.js

我创建了一个服务帐户,服务密钥JSON文件就是从中创建的。该服务帐户可以访问我的搜索控制台帐户。当我看着https://search.google.com/search-console/users我在那里看到服务用户,并且在Permission列中;满";。

有人能帮助我理解为什么我在运行代码时会出现以下错误吗?

{
  message: "User does not have sufficient permission for site 'http://example.com'. See also: https://support.google.com/webmasters/answer/2451999.",
  domain: 'global',
  reason: 'forbidden'
}

提到的URL,https://support.google.com/webmasters/answer/2451999,只需将我链接到搜索控制台用户页面。。。其(再次(表示服务用户具有完全权限。

在谷歌论坛和互联网的其他地方找到了它发生的原因。

  1. 需要复制服务帐户电子邮件,长而奇怪的格式(例如:whiskey-tango-foxtrot@certain-something-0123456.iam.gserviceaccount.com)来自谷歌云:https://console.cloud.google.com/apis/credentials到搜索控制台https://search.google.com/u/1/search-console/users,作为";完整站点";使用者

  2. 请确保您已通过API或使用此工具添加了该网站(从搜索控制台添加(:https://developers.google.com/webmaster-tools/v1/sites/add

  3. 然后,当你表演";list_ sites"请求时,您的网站应在此处列出,并且permission_level是";siteFullUser";(根据步骤1(

  4. 当您执行add_sitequery API请求时,请确保根据上面的步骤设置siteUrl,例如:http://www.example.com/(用于URL-前缀属性(或sc-domain:example.com(用于域属性(快乐编码

相关内容

最新更新