使用Apps Script API创建新的Apps脚本文件 - 错误 - 收到无效的JSON有效负载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Apps Script API创建新的Apps脚本文件 - 错误 - 收到无效的JSON有效负载相关的知识,希望对你有一定的参考价值。

我收到错误:

收到的JSON有效负载无效

尝试使用Apps Script API创建新的Apps脚本文件时。

我该如何解决这个错误?

function createNewFile() {
  var d,options,payload,response,theAccessTkn,url;

  theAccessTkn = ScriptApp.getOAuthToken();

  //See https://developers.google.com/apps-script/api/reference/rest/v1/projects/create
  url = "https://script.googleapis.com/v1/projects";

  d = new Date().toString().slice(0,10);

  payload = {
    "title": "AA_" + d
  }

  options = {
    "method" : "POST",
    "muteHttpExceptions": true,
    "headers": {
       'Authorization': 'Bearer ' +  theAccessTkn
     },
    "payload": JSON.stringify(payload)
  };

  response = UrlFetchApp.fetch(url,options);

  Logger.log(response)

  return response;
}

我在清单文件中设置了授权范围,以避免需要添加OAuth库:

{
  "timeZone": "America/New_York",
  "oauthScopes": [
    "https://www.googleapis.com/auth/script.projects",
    "https://www.googleapis.com/auth/script.external_request"
  ],
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER"
}
答案

我需要在选项中添加"contentType": "application/json"

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

以上是关于使用Apps Script API创建新的Apps脚本文件 - 错误 - 收到无效的JSON有效负载的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Google Apps 脚本执行 API + Java 创建 Google 表单?

使用参数从 Golang 调用 Apps Script API 函数?

创建新应用程序时出现 DigitalOcean API 错误 - api.digitalocean.com/v2/apps

从 Google Apps 脚本调用 Twitter API

如何使用 Spotify Apps API 对象?

使用Apps脚本代码更新(覆盖)一个Apps脚本文件和另一个Apps脚本文件