Botkit 4 + SlackAdapter: Невозможно получить обратные вызовы для основного разговора - PullRequest
0 голосов
/ 21 мая 2019

У меня проблемы с запуском базовых обратных вызовов.Может кто-нибудь указать мне на рабочий образец с botkit 4 получения ответов от разговора в Slack?Я настроил SlackAdapter и использовал SlackEventMiddleware и SlackMessageTypeMiddleware, но мои обратные вызовы не вызывались.

Я взял этот базовый код из документации по botkit и вызываю его после команды / slash.Вопрос написан, но что бы я ни писал, ни один из обратных вызовов не запускается.Я вижу события, приходящие на мой сервер, но не на эти обратные вызовы.

Вот код, с которым я тестирую:

    let convo = new BotkitConversation('cheese', controller)

    await bot.startPrivateConversation(message.user)

    // create a path for when a user says YES
    convo.addMessage('You said yes! How wonderful.', 'yes_thread')

    // create a path for when a user says NO
    convo.addMessage('You said no, that is too bad.', 'no_thread')

    // create a path where neither option was matched
    // this message has an action field, which directs botkit to go back to the `default` thread after sending this message.
    convo.addMessage('Sorry I did not understand.', 'bad_response')

    // Create a yes/no question in the default thread...
    convo.addQuestion(
        'Do you like cheese?',
        [
            {
                pattern: 'yes',
                handler: async (response, convo, bot) => {
                    await convo.gotoThread('yes_thread')
                }
            },
            {
                pattern: 'no',
                handler: async (response, convo, bot) => {
                    await convo.gotoThread('no_thread')
                }
            },
            {
                default: true,
                handler: async (response, convo, bot) => {
                    await convo.gotoThread('bad_response')
                }
            }
        ],
        'likes_cheese',
        'default'
    )

    controller.addDialog(convo)

    await bot.beginDialog(`cheese`)

Любая помощь очень ценится!

1 Ответ

0 голосов
/ 21 мая 2019

Так получается, что что-то в моем провайдере нестандартного хранилища мешало.Я еще не дошел до сути, но когда я закомментировал своего провайдера хранения, я смог получить обратные вызовы разговора.

например

const controller: Botkit = new Botkit({
    adapter: getSlackAdapter()

    // TODO: This is causing conversation call backs to NOT fire, let's revisit this later. We may not actually need this.
    //storage: services.storageService
})
...