1

我在 Slack API 传入网络挂钩上启用了传入网络挂钩。工作区的 Webhook URL:

指示:

要使用您的 webhook URL 发送消息,请将 JSON 中的消息作为 application/json POST 请求的正文发送。

将此 webhook 添加到下面的工作区以激活此 curl 示例。

发布到频道的示例 curl 请求:

curl -X POST -H 'Content-type: application/json' --data '{"text":"Hello,     World!"}' https://hooks.slack.com/services/T0AFATG95/B73FDS5R6V/hFApP

(令牌不完整)。

当我发送 POST 请求时,它起作用了!

APP 下午 2:18 你好,世界!

现在我想让 Twillio 使用 web-hook 或 TwiML 将此 POST 请求发送到 slack。???这基本上是对松弛 URL 的中继。如何向该 URL 发出 POST 请求,以便发送到 twillio # 的消息在正文中发送?

在 twillio 手机设置下,我选择在以下情况下会发生什么:

Webhook 中出现一条消息 [WEB HOOK GOES HERE] HTTP POST

或者我可以使用:

取而代之的是 TwiML Bin 并在 twilio 手机设置中分配它。

如果我不能做到这一点,我将使用 lambda 函数来做到这一点,尽管可能有一种方法可以实现这一点,因为我不操纵任何有关消息的内容。

4

1 回答 1

1

您可以使用 来执行此操作Twilio Function,这是该函数的代码:

const got = require('got');

exports.handler = function(context, event, callback) {

  const requestBody = {
    text: event.Body
  };

  got.post('https://hooks.slack.com/services/T0AFATG95/B73FDS5R6V/hFApP', {
    headers: {
      'Content-Type': 'application/json'
    },
    body: JSON.stringify(requestBody)
  })
    .then(response => {
      let twiml = new Twilio.twiml.MessagingResponse();
      twiml.message("Your message has been forwarded to Slack.");
      callback(null, twiml);
    })
    .catch(err => {
      callback(err);
    });
};

笔记:

于 2017-10-03T03:30:58.220 回答