【问题标题】:Sending nested data from google sheet to API将嵌套数据从谷歌表发送到 API
【发布时间】:2020-04-14 12:10:41
【问题描述】:

我正在尝试在 google 脚本中实现以下 REST

我使用的代码如下

function whatsapp() {
  //https://www.gupshup.io/developer/docs/bot-platform/guide/whatsapp-api-documentation#SendText

  var payload = {"channel":"whatsapp", 
                  "source":"917834811114", 
                  "destination":"91999990**34",//I have * done it on purpose  
                  "src.name":"googlerishisheet", 
                 "message.payload" : {
                   "isHSM":"true",
                   "type": "text",
                   "text": "Hi John, your order is confirmed and will be delivered to you by 15 Feb"
                 }
                }
                 
                           
  var url = 'https://api.gupshup.io/sm/api/v1/msg?apikey=0*8e4a487d6d4d3ccd2d52e7f0ffb78f'; // I have done * on purpose
  var options = {"method" : "post",
                 "payload" : payload};
   UrlFetchApp.fetch(url, options);
}

我得到的结果是

我也尝试了以下方法。

  1. "payload":JSON.stringify(payload) 结果 - {text=Hi John,您的订单已确认并将在 2 月 15 日之前交付给您,type=text, isHSM=false}

  2. "message":{"payload" : { "isHSM":"false", "type": "text", "text": "Hi I am testing whatsapp" }}}; 并将 contentType 设置为 x-www.....urlencoded..

结果 - {payload={type=text,text=Hi 我正在测试whatsapp,isHSM=false}}

  1. "src.name":"googlerishisheet", "message.payload.isHSM":"false", "message.payload.type": "text", "message.payload.text": "Hi I am testing whatsapp" }; 结果 - 同样的问题

【问题讨论】:

  • 也试过了,但没有得到相同的结果 {text=Hi John,您的订单已确认并将在 2 月 15 日之前交付给您,type=text,isHSM=false}
  • 现在显示 {payload={type=text,text=Hi 我正在测试 whatsapp, isHSM=false}}
  • 已经做过这个样式了,但是结果是一样的
  • 选项中的var payload = {"channel":"whatsapp", "source":"917834811114", "destination":"91999990**34",//I have * done it on purpose "src.name":"googlerishisheet", "message.payload" : JSON.stringify({ "isHSM":"true", "type": "text", "text": "Hi John, your order is confirmed and will be delivered to you by 15 Feb" }) }contentType:"application/x-www-form-urlencoded" 怎么样?
  • JSON.stringify({ "isHSM":"true", "type": "text", "text": "嗨,John,您的订单已确认,将于 2 月 15 日之前交付给您" }) 也有效

标签: json api google-apps-script gupshup


【解决方案1】:

文档指出message.payload 值的类型为object。但是,您似乎应该将其作为纯字符串发送,同时将 payload contentType 保持为 "application/x-www-form-urlencoded"

    "message.payload" : JSON.stringify({
                   "isHSM":"true",
                   "type": "text",
                   "text": "Hi John, your order is confirmed and will be delivered to you by 15 Feb"
                 })

【讨论】:

  • 我在 Python 中使用 json.dumps 实现了这个,感谢@TheMaster 的帮助
【解决方案2】:

您可能还需要添加内容类型。

var options = {
                "method" : "post",
                "headers": {
                  "Content-Type": "application/json"
                 },
                 "payload" : payload
             };
UrlFetchApp.fetch(url, options);

【讨论】:

  • 没有标题我也在工作,问题是不接受这种格式的嵌套数据。
【解决方案3】:

如果您将此消息作为模板消息发送,请确保您的模板已获得 WhatsApp 的批准或您正在使用的相同模板(“您好,{1},您的订单已确认,并将通过{2}") 由 GupShup 预先批准。您可以在仪表板中查看。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2017-05-08
    • 2018-04-09
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-03
    相关资源
    最近更新 更多