Обратный звонок для слабого бота в лямбде - PullRequest
0 голосов
/ 13 ноября 2018

Я создал слабого бота, который вызывает лямбда-обработчик. Функция в lambda проверяет полученный текст и отправляет сообщение слабому боту. По какой-то причине слабый бот продолжает повторять попытки три раза, так как он думает, что не получает обратного вызова, поэтому ответное сообщение печатается в слабом режиме три раза. Я попытался использовать обратный вызов вместо http-запроса, но это тоже не работает. Кто-нибудь знает, как не дать слабому боту снова и снова вызывать лямбду? Я закомментировал обратный вызов, так как он не работает.

        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 голосов
/ 23 декабря 2018

Посмотрите на пакет @ slack / client , его гораздо проще собрать с помощью официального пакета. Также здесь у вас есть пример того, как его использовать, он написан на машинописи, но в основном тот же

...