我正在使用bot builder sdk为node.js创建一个聊天机器人 . 还连接到Facebook Channels . 我使用以下代码来问候用户:
var bot = new builder.UniversalBot(connector, [
(session, result, next) => {
let text = '';
switch(session.message.address.channelId) {
case 'facebook':
text = 'Hi ' + session.message.user.name + ' !';
break;
default:
text = 'Hi !';
}
session.sendTyping();
session.say(text);
next();
},
(session, say) => {
}
]);
上面的代码工作正常,但我想在输入栏中添加“Get Started”按钮来调用上面的代码 . 请注意,此按钮仅出现一次 . 请在下面找到打字栏的图片:
有没有办法使用bot builder sdk为node.js实现这一目的?
谢谢
2 回答
虽然可以添加一个按钮来启动机器人的任何活动,但这将限制机器人只有一个可定制的通道,即WebChat .
我认为有更好的两种替代方法可以获得所需的功能,这些功能可用于多种渠道 .
First
我建议添加
conversation update
事件 . 代码在botbuilder's
中间件中 . 以下是文档中的示例代码 .这将做的是让机器人发送消息向我发送一个Hi给用户,如果它确定这是第一次访问者 . 这将为访问者提供足够的提示,通过键入来发送机器人Hi . 虽然他可以输入他想要的任何内容,但是这将导致调用配置的第一个对话框,在这种情况下将是您发布的对话框 .
Second
如果您的机器人从未遇到此访问者,您可以标记一些自动调用的对话框 . 这是示例代码......
在这里,我们分两步拆分机器人创建和对话框注册 . 在注册firstRun对话框时,我们为它提供了triggerAction,如果访问者是新的,则触发此对话框 .
这两种方法都不使用添加一些额外的按钮,并且由机器人来教育他发送一些消息,这反过来将启动第一个对话框或直接启动一些对话框 .
有关conversationEvent的更多信息,请参阅此page
我尝试了上面的选项,但他们似乎没有为facebook messenger工作 . 但我找到了一个解决方案,将“入门”按钮添加到信使的输入栏中 . 为此我们需要使用Facebook Graph API而不是bot builder sdk .
上面的API调用将为您添加按钮以启动对话 .
谢谢大家的帮助!!