Google Apps Script POST 请求 UrlFetchApp

jcv*_*cvd 7 google-apps-script sendhub

我正在尝试使用 GoogleApps 脚本中的 API 将群组和联系人添加到 SendHub 帐户。我可以成功地发出 GET 请求并毫无问题地取回 JSON 数据。当我尝试 POST 请求添加对象时,我收到了 400、401 和 405 错误,具体取决于我准备数据的方式。

这会得到一个 400 错误:

  var headers = {
    "Content-type" : "application/json"
  };
  var data = {
    "name" : "Me Testing",
    "slug" : "me-testing",
    "text_to_subscribe" : true
  };
  var payload = {
    "data" : Utilities.jsonStringify(data)
  };
  var options = {
    "method" : "post",
    "headers" : headers,
    "payload" : payload
  };
  var url = "https://api.sendhub.com/v1/groups/?username=USERNAMEWORKSFORGETREQUESTS&api_key=KEYWORKSFORGETREQEUSTS";
  var response = UrlFetchApp.fetch(url, options);
Run Code Online (Sandbox Code Playgroud)

我进行了几次不同的尝试来改变选项对象的形成方式,结果从 400、401 或 405 错误不等。我对如何为 SendHub API 形成正确的 POST 请求感到困惑此处

我在这篇文章后不久就开始工作了。这是我所做的:

  var data = {
    "name" : "Me Testing",
    "slug" : "me-testing",
    "text_to_subscribe" : "true"
  };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var url = "https://api.sendhub.com/v1/groups/?username=GOODUSERNAME&api_key=GOODAPIKEY";
  var response = UrlFetchApp.fetch(url, options);
Run Code Online (Sandbox Code Playgroud)

jcv*_*cvd 6

我将答案放在问题的编辑部分。我不确定我所做的三个更改中的哪一个使它起作用,但我留下了起作用的示例代码。

 var data = {
    "name" : "Me Testing",
    "slug" : "me-testing",
    "text_to_subscribe" : "true"
  };
  var payload = JSON.stringify(data);
  var options = {
    "method" : "POST",
    "contentType" : "application/json",
    "payload" : payload
  };
  var url = "https://api.sendhub.com/v1/groups/?username=GOODUSERNAME&api_key=GOODAPIKEY";
  var response = UrlFetchApp.fetch(url, options);
Run Code Online (Sandbox Code Playgroud)