Azure 第二个ConversationUpdate事件将出现在用户第一次输入的后面?
我在Azure门户上测试我的机器人(机器人通道注册/机器人管理/在网络聊天中测试)。 第二个ConversationUpdate事件将出现在用户第一次输入的后面,如下所示 Azure的Webchat步骤如下所示Azure 第二个ConversationUpdate事件将出现在用户第一次输入的后面?,azure,botframework,Azure,Botframework,我在Azure门户上测试我的机器人(机器人通道注册/机器人管理/在网络聊天中测试)。 第二个ConversationUpdate事件将出现在用户第一次输入的后面,如下所示 Azure的Webchat步骤如下所示 单击Startover bot获取第一次会话更新,memberAdd bot 用户输入文本 bot获取用户输入文本 bot获取第二次会话更新,memberAdd用户 但模拟器工作正常,2个会话更新事件并等待用户输入。 如下所示的步骤 单击开始新对话 bot获取第一次会话更新,membe
谢谢。这是张贴在这里的常见问题;是的,
conversationUpdate
事件在emulator和webchat之间不是以相同的方式抛出的,这非常令人不安
在Webchat中向您的用户发送欢迎信息
我想发送欢迎信息(包括用户名,如hi,rainmaker
当第二次会话更新即将到来时,欢迎…)访问用户。这个
欢迎消息将在用户输入azure webchat后发送。我怎么能
解决这个问题
如果您需要在该用户开始讲话之前发送包含该用户某些信息的欢迎信息,您可以使用webchat的反向频道
功能传递这些信息,然后捕获该信息并发送欢迎信息
它的前端需要几行代码,因此不能用于Azure webchat tester。但它在webchat实现上运行良好,请参见下面的示例。
旁注:如果您不需要有关用户的信息,您仍然可以使用您收到的第一次conversationUpdate
样品
示例代码:我做了一个演示,您可以在那里看到:
要点:
一,。从前端发送的反向通道消息
在示例中,我传递了一个locale
信息:
botConnectionSettings.postActivity({
type: 'event',
from: { id: 'userid' },
locale: chatLocale,
name: 'localeSelectionEvent',
value: chatLocale
}).subscribe(function (id) { console.log('event language "' + chatLocale + '" selection sent'); });
二,。在bot级别接收到消息
你能添加更多或编辑你的问题,使它更容易理解吗?是否使用用户名发送消息取决于您的要求。@Aravind,我想在第二次会话更新到来时向用户发送欢迎消息(包括用户名,如hi,rainmaker welcome…)。欢迎消息将在用户输入azure webchat后发送。我怎样才能解决这个问题?@Rainmaker:不要从你的实施想法开始。如果我理解的很好,您不想“在第二次ConversationUpdate到来时向用户发送欢迎消息”,您需要的是“在用户键入任何内容之前向用户发送欢迎消息”。我说得对吗?@NicolasR,是的,你说得对,谢谢。
else if (activity.Type == ActivityTypes.Event && activity.ChannelId == "webchat")
{
var receivedEvent = activity.AsEventActivity();
if ("localeSelectionEvent".Equals(receivedEvent.Name, StringComparison.InvariantCultureIgnoreCase))
{
// Send your welcome message here, using the special information you would have put in the event message...
}
}