因此,我使用节点js 构建了一个 messenger bot。我该怎么做:
这是我当前的脚本no。 1:
function replyByText(sender, text, payload) {
let kata = text.toLowerCase()
let date = new Date()
let current_hour = date.getHours()
if (S(kata).contains('produk') || S(kata).contains('produknya') || S(kata).contains('product')) {
sendOpeningProduct(sender, "Wait Sec..")
}
if (S(kata).contains('layanan')|| S(kata).contains('services')|| S(kata).contains('diagnose')){
// sendOpeningServices(sender, 'Wait sec..' )
sendPlainMessage(sender, 'Hi, what concern you most about your health? Please describe your symptoms..' )
}
if (S(kata).contains('health symptoms')){
sendPlainMessage(sender, 'Tell me What You Feel..' )
}
if (S(kata).contains('im feeling sick') || S(kata).contains('im feeling unwell') || S(kata).contains('im feeling dizzy') || S(kata).contains('dizzy') || S(kata).contains('sick')){
sendPlainMessage(sender, 'How old are you ?' )
}
if (S(kata).contains('3') || S(kata).contains('4') || S(kata).contains('5') || S(kata).contains('6') || S(kata).contains('7') || S(kata).contains('8') || S(kata).contains('9')){
sendPlainMessage(sender, 'I see...' )
sendOpeningProductKids(sender, "Just try our products")
}}
任何帮助都会受到赞赏..
答案 0 :(得分:1)
解决方案1:
function replyByText(sender, text, payload) {
let kata = text.toLowerCase()
let date = new Date()
let current_hour = date.getHours()
if (S(kata).contains('produk') || S(kata).contains('produknya') || S(kata).contains('product')) {
sendOpeningProduct(sender, "Wait Sec..")
}
else if (S(kata).contains('layanan')|| S(kata).contains('services')|| S(kata).contains('diagnose')){
// sendOpeningServices(sender, 'Wait sec..' )
sendPlainMessage(sender, 'Hi, what concern you most about your health? Please describe your symptoms..' )
}
else if (S(kata).contains('health symptoms')){
sendPlainMessage(sender, 'Tell me What You Feel..' )
}
else if (S(kata).contains('im feeling sick') || S(kata).contains('im feeling unwell') || S(kata).contains('im feeling dizzy') || S(kata).contains('dizzy') || S(kata).contains('sick')){
sendPlainMessage(sender, 'How old are you ?' )
}
else if (S(kata).contains('3') || S(kata).contains('4') || S(kata).contains('5') || S(kata).contains('6') || S(kata).contains('7') || S(kata).contains('8') || S(kata).contains('9')){
sendPlainMessage(sender, 'I see...' )
sendOpeningProductKids(sender, "Just try our products")
}
else{
sendPlainMessage(sender, 'Sorry I cant recognize that command' )
}
}
No 2的解决方案:
您必须在每次调用webhook之间保存状态。跟着这些步骤。
有几种方法可以解决这个问题。你可以这样解决这个问题。通过在每个webhook调用上更新covesation模型/对象来保存状态。使用从facebook api获取的用户唯一psid作为主键或作为模型/对象的复合键的一部分
答案 1 :(得分:1)
您还可以尝试使用BootBot(https://github.com/Charca/bootbot),这是一个使得Messenger开发相对容易的nodejs框架。它具有轻松检查用户输入和保存会话上下文的功能。
答案 2 :(得分:0)
对于您的第一个问题,开关/案例陈述将是理想的。如果不满足任何情况,默认操作将是“抱歉,我无法识别该命令”。