回调到Lambda中的Slack Bot

时间:2018-11-13 19:21:15

标签: lambda callback nodes bots slack

我创建了一个调用lambda处理程序的Slack机器人。 lambda中的函数检查收到的文本并将消息发送回slack bot。由于某种原因,slack僵尸程序会继续重试3次,因为它认为没有得到回调,因此所回复的消息会以3倍的松弛率打印出来。我尝试使用回调代替http发布请求,但这似乎也不起作用。有谁知道如何阻止Slack Bot一次又一次地调用lambda?我已对回调进行了注释,因为它不起作用。

        function sendToSlack (messages, callback) {
          return new Promise((resolve, reject) => {
            // callback(null, {
            //     statusCode: 200,
            //     body: JSON.stringify({"text": "Hello"})
            //   })
            //   return resolve()
            let httpReq = http.request(slackHookReqObj, (res) => {
              resolve()
            })

            httpReq.on('error', reject)
            httpReq.write(JSON.stringify({ "text": messages.join('\n') }))
            httpReq.end()
          })
        }

    async function test (event, context, callback) {
      return new Promise(async (resolve, reject) => {
        let slackEvent = JSON.parse(event.body)

      if (slackEvent.event.type === 'app_mention') {
        if (receivedText[1] == 'help') {
            var helpMessages = ['test']
            if (helpMessages.length) await sendToSlack(helpMessages, callback)
          }
      }
     return resolve()
     })
    }

exports.handler = test

1 个答案:

答案 0 :(得分:0)

看看@slack/client软件包,用官方软件包构建它更容易。另外,here还有一个使用示例,它是用打字稿写的,但基本上是相同的