【问题标题】:Google script doPost to TwilioGoogle 脚本 doPost 到 Twilio
【发布时间】:2022-01-06 08:59:12
【问题描述】:

我尝试在谷歌脚本中使用 doPost 从源 A 获取参数并让 twilio 发送短信。 目前,通过使用 twilio 提供的代码,我可以在谷歌脚本中发送任何细节。 我已经创建了 webapp exec url 来放入源 A,所以现在源 A 和 google 脚本可以通信了。

我只是不知道如何在谷歌脚本中做一个正确的脚本来从源 A 获取参数。 任何人都可以帮助我..提前谢谢你! 我是编码新手,甚至不确定源代码/格式是否正确-_-"

来源 A:(json) data input field

输出结果

{
  "$type": "Nirvana.Data.TaskResultWebhook, V2API",
  "Headers": {
    "$type": "System.Collections.Generic.Dictionary`2[[System.String, mscorlib],[System.String, mscorlib]], mscorlib",
    "Authorization": "Basic xxxxxxxxxxxxxxxxxx=="
  },
  "Payload": "{\"To\": \"+8888888888\",\"Body\": \"testing\",\"From\" : \"business\"}",
  "Url": "https://script.google.com/macros/s/xxxxxxxxxx/exec",
  "Verb": "Post",
  "ContentType": "JSON",
  "MimeType": "application/json",
  "TimeoutSeconds": 180,
  "MaxRetryCount": 3,
  "AsyncExec": false,
  "AppErrors": {
    "$type": "Jeenee.DataTypes.AppErrors, Jeenee.DataTypes",
    "RecordInfo": false,
    "RecordWarning": true,
    "AnnotateErrors": false,
    "Errors": []
  },
  "TaskType": "Webhook",
  "TaskName": "New Task"
}

Google 脚本(来自 twilio 的代码)

function doPost(e) {
  var messages_url = "https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxx/Messages.json";

  var payload = {
    "To": "+1111111111",
    "Body" : "AAAAAAAAAA",
    "From" : "BBBBBBBBBB"
  };

  var options = {
    "method" : "post",
    "payload" : payload
  };

  options.headers = { 
    "Authorization" : "Basic " + Utilities.base64Encode("ACxxxxxxxxxx:xxxxxxxxxxxx")
  };

  UrlFetchApp.fetch(messages_url, options);
}

第 3 步(twilio) 发短信

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: google-apps-script twilio


【解决方案1】:

不确定是谁在调用您的脚本。如果您将其用作 webhook,则可以在调用时将对象中的参数传递给您的 doPost 函数。

    function doPost(e) {

var params = e.parameter;
var from = params.From;
var to = params.To;
var body = params.Body;

      var messages_url = "https://api.twilio.com/2010-04-01/Accounts/ACxxxxxxxxxxxx/Messages.json";
    
      var payload = {
        "To": to,
        "Body" : body,
        "From" : from
      };
    
      var options = {
        "method" : "post",
        "payload" : payload
      };
    
      options.headers = { 
        "Authorization" : "Basic " + Utilities.base64Encode("ACxxxxxxxxxx:xxxxxxxxxxxx")
      };
    
      UrlFetchApp.fetch(messages_url, options);
    }

【讨论】:

  • 嗨,杰克,感谢您的协助。我正在使用 webhook 执行为:有权访问的我:任何人 不知道为什么状态再次失败
  • 我是脚本新手,有没有更多信息可以提供给您以方便帮助
  • 我从一些帖子中看到了这部分,不确定如何构造以及是否有帮助,'payload' : JSON.stringify(e['parameters'][0])
  • 您必须允许任何人甚至匿名,以便 Twilio 向您的 webhook 发送内容。 Twilio 不会发布到私人 URL
  • 如果有效请接受回答
猜你喜欢
  • 2018-05-19
  • 2023-03-31
  • 2019-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多