Как бот Lex может начать разговор с пользователем Slack - PullRequest
0 голосов
/ 15 апреля 2020

Привет, моя команда пытается заставить бота Lex начать разговор с пользователем через Slack через DM.

Я прочитал вопросы StackOverflow, связанные с ботом Lex, но ни один из них не имеет отношения к Slack или что-то такое, что может помочь.

Наш вариант использования: мы используем планировщик CloudWatch для запуска функции Lambda в определенное время c, и эта функция Lambda должна инструктировать бота Lex инициировать диалог с пользователем Slack. По сути, этот бот должен напоминать пользователю о завершении sh некоторых задач.

Мы прочитали эту документацию для управления сессиями => https://docs.aws.amazon.com/lex/latest/dg/how-session-api.html, а также эту документацию => https://docs.aws.amazon.com/lex/latest/dg/lex-dg.pdf на 39 странице есть объяснение того, как начать разговор, используя putSession. Поэтому мы попробовали использовать LexRuntime javascript SDK, используя примеры здесь => https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/LexRuntime.html#putSession -property

const params = {
      botAlias: "stage",
      botName: "testBot",
      userId: `${userId}` /* Here we used Slack user ID */ ,
      accept: "text/plain; charset=utf-8",
      dialogAction: {
        type: "Delegate",
        intentName: "WelcomeBackIntent",
        message: "Test Message",
        messageFormat: "PlainText",
      }
    };
const putSessionRequest = lexruntime.putSession(params, function(err, data) {
      if (err) console.log('ERROR', err, err.stack); 
      else console.log('DATA', data);
    });
    console.log('PUT SESSION', putSessionRequest);

    putSessionRequest.on('success', function(response) {
      console.log('INSIDE SUCCESS CALLBACK', response.data);
    });

Нам удалось создать сеанс на боте Lex, мы получаем запрос обратно из операции putSession, и когда мы регистрируем данные, мы можем видеть информацию из WelcomeIntent на боте Lex. Но, тем не менее, мы никогда не получали сообщения от самого Бота.

Что нам здесь не хватает? Как бот Lex может начать разговор с пользователем Slack? Можем ли мы использовать операцию putSession, чтобы бот Lex инициировал диалог Slack с пользователем Slack?

...