在 Google Apps 脚本中试用 Search Console

Trying Search Console in Google Apps Script

我正在尝试使用以下代码从 Search Console REST API 获得响应,我已经在其中配置了 OAuth2.0 授权。

function searchConsoleQuery() {
  var service = getService();

  var apiURL = 'https://www.googleapis.com/webmasters/v3/sites/[SITE_URL]/searchAnalytics/query';

  var headers = {
    'Authorization': 'Bearer ' + service.getAccessToken(),
    'contentType':'application/json',
    'startDate':'20019-10-01',
    'endDate':'2019-10-10',
  };

  var options = {
    'payload': JSON.stringify(headers),
    'method' : 'POST',
    'muteHttpExceptions': true
  };

  var response = UrlFetchApp.fetch(apiURL, options);

  var json = JSON.parse(response.getContentText());
  Logger.log(json)

}

当我运行它时,日志returns如下错误信息:

{error={code=401, message=Login Required, errors=[{reason=required, domain=global, locationType=header, location=Authorization, message=Login Required}]}}

请有人帮助修复此错误。

这个修改怎么样?

发件人:

var headers = {
  'Authorization': 'Bearer ' + service.getAccessToken(),
  'contentType':'application/json',
  'startDate':'20019-10-01',
  'endDate':'2019-10-10',
};

var options = {
  'payload': JSON.stringify(headers),
  'method' : 'POST',
  'muteHttpExceptions': true
};

收件人:

var payload = {
  'startDate':'2019-10-01',
  'endDate':'2019-10-10',
};

var options = {
  'payload': JSON.stringify(payload),
  'method' : 'POST',
  'muteHttpExceptions': true,
  'headers': {'Authorization': 'Bearer ' + service.getAccessToken()},
  'contentType':'application/json'
};

注:

  • 请将20019-10-01修改为2019-10-01
  • 本次修改中,假设如下。
    • 您的访问令牌可用于使用 Search Analytics:Search Console APIs API 的查询。 https://www.googleapis.com/auth/webmasters.readonly and/or https://www.googleapis.com/auth/webmasters 的范围包含在访问令牌的范围内。
    • 您已经在 API 控制台启用了 Search Console APIs。

参考文献:

如果我误解了你的问题,这不是你想要的结果,我深表歉意。