【问题标题】:Podio Webhook Verification in Google Apps ScriptGoogle Apps 脚本中的 Podio Webhook 验证
【发布时间】:2019-05-20 08:59:13
【问题描述】:

我在 Podio 中为我的 Google Apps 脚本 URL 创建了一个 Webhook,其 doPost 函数如下所示:

function doPost(e) {

  var DecodedPostData = decodeURIComponent(e.postData.contents).replace(/\+/g‌," ");

  doPostLogData = "POST Data Received:\n" + e.postData.contents + "\n\n" + "DECODED POST DATA:\n" + DecodedPostData;

//GmailApp.sendEmail("me@me.com", "Data", "Triggered");

try { 
var response;

      var formData = {   // Make a POST request with file and script data.
            "code": [e.parameters.code]
          }

          var options = {
            'method' : 'post',
            'payload' : formData,
            'muteHttpExceptions' : true
          }

          response = UrlFetchApp.fetch('https://api.podio.com/hook/' + e.parameters.hook_id + '/verify/validate', options);
      GmailApp.sendEmail("me@me.com", "Data", doPostLogData + "\n\n" + e.parameters.code + "\n\n" + e.parameters.hook_id + "\n\n" + response.getContentText());
}
catch (e) {

GmailApp.sendEmail("me@me.com", "Data", e);
}


return;

}

我收到以下电子邮件(即作为正在发生的事情的日志):

POST Data Received:
hook_id=12345&code=abcde&type=hook.verify

DECODED POST DATA:
hook_id=12345&code=abcde&type=hook.verify

abcde

12345

{"error_parameters":{},"error_detail":null,"error_propagate":false,"request":{"url":"http:\/\/api.podio.com\/hook\/12345\/verify\/validate","query_string":"","method":"POST"},"error_description":"No
matching operation could be found. No body was
given.","error":"not_found"}

我不知道我做错了什么。似乎有人在这里问了类似的问题 (JSON in Google Apps Script),但我认为它不包含我的问题的答案。

知道我遗漏了什么或可能做错了什么吗?据我所知Podio's Documentation

非常感谢任何输入。谢谢!

【问题讨论】:

  • 1. 改用e.parameter。 2.删除formData中的[]
  • 这些也可能是必需的。 3.修改为'payload' : JSON.stringify(formData) 4.将'contentType': "application/json"添加为options
  • e.parameter.code 提供与 e.parameters.code 相同的输出,因此没有任何改变。单独删除 [] 并不能解决问题,而是删除它们并使 Tanaike 建议的更改生效!谢谢!
  • @bbx 考虑将其添加为答案。

标签: google-apps-script podio


【解决方案1】:

为了解决这个问题,我实施了 TheMaster 和 Tanaike 的两个建议。分别是:

  1. 改用 e.parameter。
  2. 删除formData中的[]
  3. 修改为“有效负载”:JSON.stringify(formData)
  4. 将 'contentType': "application/json" 添加到选项中。

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多