<!DOCTYPE html>
<html>
<head>
<title>Avanade D365 F&O Assets BOT</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--
For demonstration purposes, we are using development branch of Web Chat at "/master/webchat.js".
When you are using Web Chat for production, you should use the latest stable at "/latest/webchat.js".
Or locked down on a specific version "/4.1.0/webchat.js".
-->
<script 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" role="main">
<iframe src='https://webchat.botframework.com/embed/AssetsBot?s=<<given my code here as it is secret i have attached this removing the code>>' style='min-width: 400px; width: 100%; min-height: 500px;'></iframe>
</div>
<script src="https://cdn.botframework.com/botframework-webchat/latest/webchat.js"></script>
<script>
// We are using a customized store to add hooks to connect event
const store = window.WebChat.createStore({}, ({ dispatch }) => next => action => {
if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {
// When we receive DIRECT_LINE/CONNECT_FULFILLED action, we will send an event activity using WEB_CHAT/SEND_EVENT
dispatch({
type: 'WEB_CHAT/SEND_EVENT',
payload: {
name: 'webchat/join',
value: { language: window.navigator.language }
}
});
}
return next(action);
});
const styleOptions = {
botAvatarImage: '<<Given Image URL, removed as these are project specific>>',
botAvatarInitials: 'BF',
userAvatarImage: '<<Given Image URL, removed as these are project specific>>',
userAvatarInitials: 'WC',
bubbleBackground: 'rgba(0, 0, 255, .1)',
bubbleFromUserBackground: 'rgba(0, 255, 0, .1)'
};
window.WebChat.renderWebChat({
directLine: window.WebChat.createDirectLine({ secret: '<<given my code here as it is secret i have attached this removing the code>>' }),
// Passing "styleOptions" when rendering Web Chat
styleOptions
}, document.getElementById('webchat'));
</script>
</body>
</html>
У меня есть чат-бот, созданный в C # с использованием SDK 4, и я пытаюсь отобразить текст приветствия, когда пользователь открывает веб-чат в браузере.В настоящее время текст приветствия отображается в эмуляторе, а не в открытом браузере WebchatBot после публикации в Azure.Это только показывает приветственное сообщение только после того, как я наберу что-то вроде «Привет» или что-то еще.Это не должно быть так, что сначала должен отображаться текст приветствия, а затем я могу напечатать Привет или что-нибудь еще, чтобы продолжить разговор
Проблема: приветственное сообщение отображается в эмуляторе, но не в боте веб-чата после публикации, отображается только после вводачто-нибудь?Должно появиться приветственное сообщение, как только вы откроете Webchatbot в браузере.
Язык: C #
Bot SDK: V4
Пакеты Bot Builder: все обновления до 4.4.3 через Nuget
Bot Emulator: последние версии 4.4.1, загруженные и установленные из выпусков GitHub
Текст приветствия вызывается в действии ConversationUpdate внутри метода OnTurnSync класса IBOT.Код, указанный ниже для справки.
Пожалуйста, помогите, поскольку я новичок в BOT и кодировании, предоставляя пошаговые инструкции?
Я уже пробовал несколько вещей, таких как:
- Отладка в эмуляторе, но это не сильно помогло
Ниже код, который я использовал:
public const string WelcomeText = "Welcome!. This bot uses a custom dialog that executes a data driven flow. Type anything to get started.";
public async Task OnTurnAsync(ITurnContext turnContext, CancellationToken cancellationToken = default(CancellationToken))
{
if (turnContext.Activity.Type == ActivityTypes.ConversationUpdate)
{
if (turnContext.Activity.MembersAdded != null)
{
await SendWelcomeMessageAsync(turnContext, cancellationToken);
}
}
}
private static async Task SendWelcomeMessageAsync(ITurnContext turnContext, CancellationToken cancellationToken)
{
foreach (var member in turnContext.Activity.MembersAdded)
{
if (member.Id != turnContext.Activity.Recipient.Id)
{
var reply = turnContext.Activity.CreateReply();
reply.Text = WelcomeText;
await turnContext.SendActivityAsync(reply, cancellationToken);
}
}
}
Ожидаемый результат: текст приветствия должен отображаться в WebchatBot также после публикации не только вЭмулятор.
Фактический результат: текст приветствия работает только в эмуляторе, но не в веб-чате, он отображается только после ввода текста.