ответ на разговор Обновление в Skype для бизнеса - PullRequest
0 голосов
/ 21 мая 2018

Я собираюсь отправить приветственное сообщение от бота в Skype для бизнеса, когда пользователь первоначально открывает окно чата.Чтобы добиться этого, я пытаюсь ответить на событие chatUpdate от бота.Когда я отвечаю на событие dialogUpdate, я получаю следующую ошибку, что диалог не завершается

{"Ошибка": {"Код": "Ошибка службы", "Сообщение": "Разговор не существует"}}

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

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

Обновления

Я был ранее на SfB 2013Я обновился до SfB 2016, и бот отвечает на событие dialogUpdate, которое он получает, когда пользователь отправляет свое первое сообщение.Как правило, в веб-чате ответ на первый размер сообщения отправляется, как только пользователь открывает окно, и второй ответ отправляется после того, как пользователь отправляет свое первое сообщение.В случае SfB ответ на второй разговор-обновление работает, но не на первый разговор-обновление.

Веб-чат Web Chat

Skype для бизнеса Skype for Business

Как объяснено выше, ответ на первый разговор об обновлении приведет к

Разговор не существует

Ошибка.Реакция на второе разговор-обновление, когда пользователь отправляет свое первое сообщение, работает.

Итак, как нам заставить приветственное сообщение работать для первого разговора-обновления и отключить его для второго обновления разговора-обновления?

1 Ответ

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

Я не уверен, почему событие converstaionUpdate не сработало.Но, как упоминалось в документации BotFramework, не все каналы поддерживают это событие.Вместо этого вы можете добавить диалог first run и проверить, работает ли он.Добавление образца со страницы docs :

// Add first run dialog
bot.dialog('firstRun', function (session) {    
    session.userData.firstRun = true;
    session.send("Hello...").endDialog();
}).triggerAction({
    onFindAction: function (context, callback) {
        // Only trigger if we've never seen user before
        if (!context.userData.firstRun) {
            // Return a score of 1.1 to ensure the first run dialog wins
            callback(null, 1.1);
        } else {
            callback(null, 0.0);
        }
    }
});
...