Google Scripts API - 不应用autoUpdateForwarding

时间:2018-03-23 14:34:46

标签: google-apps-script gmail gmail-api urlfetch

作为我工作的公司的域管理员,我们希望设置员工离开公司时的转发地址,以确保不会遗漏任何重要的信件。

到目前为止,我已经成功使用了Google Apps OAuth2库,但遇到了麻烦。以下代码旨在将地址 apitest@example.com 的电子邮件转发至 newaddress@example.com

function setupForwarding() {
  var service = getOAuthService();
  service.reset();
  try {
    if (service.hasAccess()) {
      var header = {
        Authorization: 'Bearer ' + service.getAccessToken(),
      }
      var url = "https://www.googleapis.com/gmail/v1/users/apitest@example.com/settings/autoForwarding";
      var response = UrlFetchApp.fetch(url, {
        headers: header,
        method: 'put',
        enabled: true,
        emailAddress: 'newaddress@example.com',
        disposition: 'trash'
      });
      Logger.log(response.getContentText());
    }
  } catch (e) {
    Logger.log(e.message);
  }
}

提供的访问令牌似乎与UrlFetchApp提供的其他查询一起使用,例如使用它返回帐户中记录的当前授权的转发地址(包括newaddress@example.com),并且不报告任何访问权限错误。响应仅返回以下

{ "enabled" : false }

并不适用任何转发。有人能帮我识别问题吗?我觉得我可能会错误地将参数传递给HTTP请求,但我仍然在学习该系统的方法,而我找到的其他问题似乎没有帮助。

  • 奥奇

1 个答案:

答案 0 :(得分:2)

我把它解决了,它比我想象的要简单;所以如果有人遇到类似的问题,请在这里分享答案。

name

这是实现这一目标的功能性方法;请求期望单独的有效负载和声明的内容类型。