Я пытаюсь отправить приветственное сообщение и спрашиваю имя пользователя. Бот пытается задать пользователю несколько вопросов, а затем помочь ему перенаправить ссылку. Он отлично работает в эмуляторе или онлайн-инструменте тестирования Microsoft, но приветственное сообщение не отображается, если бот интегрирован в приложение ASP. NET.
Я поискал и нашел несколько полезных ссылки, но я все еще не могу решить проблему.
Я пробовал два разных метода, iframes
и window.WebChat.renderWebChat
, но проблема возникает в обоих случаях, приветственное сообщение не отображается, пока я не отправлю сообщение к боту.
Как обсуждалось в других сообщениях, все решения заканчиваются на topi c, поэтому интеграция чат-бота должна быть реализована в javascript или Node ; Кроме того, чат-боту необходимо отправить настраиваемое событие (в качестве триггера). Однако, хотя мой бот был развернут на персональном сервере windows, я не знаю, как его настроить и установить в параметре directLine
.
Как было опубликовано здесь вероятное решение - это следующие коды, но я не могу настроить и установить необходимые параметры для получения токена.
Конечная точка обмена сообщениями: https://xxx.yyy.com/api/messages
<!DOCTYPE html>
<html lang="en-US">
<head>
<title>Web Chat: Send welcome event</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script crossorigin="anonymous" src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<style>
html,
body {
height: 100%;
}
body {
margin: 0;
}
#webchat {
height: 100%;
width: 100%;
}
</style>
</head>
<body>
<div id="webchat"></div>
<script>
(async function() {
//I have no idea how this line of code must be set to achieve the token
//------------------------------------------------------
const res = await fetch('https://xxx.yyy.com/directline/token', { method: 'POST' });
const { token } = await res.json();
//------------------------------------------------------
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: { language: window.navigator.language }
}
});
}
return next(action);
});
window.WebChat.renderWebChat(
{
directLine: window.WebChat.createDirectLine({ token }),
store
},
document.getElementById('webchat')
);
document.querySelector('#webchat > *').focus();
})().catch(err => console.error(err));
</script>
</body>
</html>
Наконец, я должен подчеркнуть, что бот хорошо работает с инструментом онлайн-тестирования и эмулятором, но ошибка возникает при интеграции в приложение asp. net.
Скриншот: слева фото из веб-приложения, справа фото из тестовой среды: введите описание изображения здесь
Изменить (1): Заголовок обновлен, снимок экрана добавлен.