首先,在WebChat的上下文中已经有很多关于这个主题的文章,并且有一些修复程序显示了实现。这里有一个非常好的链接:
这个问题不是WebChat问题,而是一个直连问题,它使用名为LivePerson的第三方来托管生活在Azure中的bot,并通过直连连接。因此,我不控制客户端代码(就像我使用html/JavaScript编写/托管bot一样)。然而,这里的要点是“不要使用conversationUpdate”,我正在我的机器人中使用它,但请继续阅读。。。
我正在使用Direct Line在LivePerson中托管我的Microsoft v4 Bot。bot使用自适应对话框欢迎用户,并在用户使用OnConversationUpdateActivity()发送任何输入之前向他们提问:
public RootDialog(IConfiguration configuration, IMiddlewareApiFacade middlewareApi, IBotTelemetryClient telemetryClient) : base(nameof(RootDialog))
{
var rootDialog = new AdaptiveDialog(nameof(RootDialog))
{
...
Triggers = new List<OnCondition>()
new OnConversationUpdateActivity()
{
Actions = WelcomeUserSteps("${Greeting()}")
}
...
}
private static List<Dialog> WelcomeUserSteps(string message)
{
return new List<Dialog>()
{
// Iterate through membersAdded list and greet user added to the conversation.
new Foreach()
{
ItemsProperty = "turn.activity.membersAdded",
Actions = new List<Dialog>()
{
// Note: Some channels send two conversation update events - one for the Bot added to the conversation and another for user.
// Filter cases where the bot itself is the recipient of the message.
new IfCondition()
{
Condition = "$foreach.value.name != turn.activity.recipient.name",
Actions = new List<Dialog>()
{
new SendActivity(message),
new BeginDialog(nameof(WelcomeDialog))
}
}
}
}
};
}
}
}
当使用模拟器在本地运行机器人或在Azure中从测试网络聊天运行机器人时,这可以正常工作,但在LivePerson中不工作。
查看LivePerson的文档,他们有一个“欢迎事件”部分,讨论机器人如何向配置为“聊天”的机器人的用户致意(这是LivePerson中该机器人的配置方式)
仔细查看聊天聊天机器人是如何启动聊天的,文档中指出:
当聊天被路由到代理时,聊天会话被视为已启动。最佳做法是由代理提供第一个响应。在此场景中,没有来自使用者的文本需要解析,因此默认的“欢迎”事件被用作bot的起点,以提示用户提供输入并推进对话。确保您的bot中有一个“入口点”,用于响应新聊天客户发送的默认“欢迎”操作。
然后这个代码:
{
// ...
"type": "message",
"text": "",
"channelData": {
"action": {
"name": "WELCOME"
}
}
}
仅供参考:LivePerson上下文中的“代理”可以指实际的人或机器人。两者都被视为“代理”,当您向LivePerson添加新代理时,可用的类型之一是“bot”。所以在这个例子中,代理并不意味着人。
我不太确定我的bot(使用bot框架v4和自适应对话框)需要如何配置/实现,以便有一个响应此欢迎消息的入口点。
我知道我不能使用conversationUpdate(或在adaptive dialog speak中,OnConversationUpdateActivity()),但我不太确定我需要使用哪个adaptive dialog(或其他方式)截取LivePerson发送给我的机器人的json欢迎消息。。。OnEventActivity()?OnMessageActivity()?还有别的吗?
谢谢!
答案总结在我想通后写的博文里:https://www.michaelgmccarthy.com/2021/03/13/sending-a-welcome-message-in-the-v4-bot-framework-via-direct-line-and-liveperson/
我正在开发一个基于微软bot框架的多渠道bot(专注于web和电报)(https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0) 我被用户收到的最初消息所困扰。我的机器人基于Microsoft发布的复杂机器人:https://github.com/Microsoft/BotFramework-Sam
我想从应用程序拨打电话。 是否可以将选项限制为仅从内置电话应用程序呼叫,而不将Viber,Skype或Whatsapp显示为选项? 以下是我的代码: 我想看起来像这样: 而不是这样(如果我已经安装了Viber和Skype): 我尝试使用以下代码: 这让Skype成为一种选择,我也不知道为什么?
本文向大家介绍WordPress 启用最受欢迎的社交网络,包括了WordPress 启用最受欢迎的社交网络的使用技巧和注意事项,需要的朋友参考一下 示例 您将在仪表板中获得以下文件: 这就是您在代码中检索它的方式
所以我做了一个机器人,它会在一个频道里向新成员发送欢迎信息。我的代码应该工作,因为它没有在我的控制台上发送任何错误,但是我的机器人没有发送欢迎消息。 我尝试了很多东西: > 使嵌入对象成为对象(nope) 做了4个长的不同代码(都不工作) 我在用discord.js@v12 代码:
1.2 项目架构 一个由 faygo 创建的项目基本包含如下几部分: 新建框架实例 app := faygo.New("myapp", "0.1") 编写接口操作 type Index struct { Id int `param:"<in:path> <required> <desc:ID> <range: 0:10>"` Title st
CodeIgniter 是一套给 PHP 网站开发者使用的应用程序开发框架和工具包。 它的目标是让你能够更快速的开发,它提供了日常任务中所需的大量类库, 以及简单的接口和逻辑结构。通过减少代码量,CodeIgniter 让你更加专注 于你的创造性工作。 CodeIgniter 是为谁准备的? CodeIgniter 就是你所需要的,如果... 你想要一个小巧的框架; 你需要出色的性能; 你需要广泛