首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何制作独立文本Messenger bot nodejs

如何制作独立文本Messenger bot nodejs
EN

Stack Overflow用户
提问于 2017-03-22 07:50:34
回答 3查看 137关注 0票数 0

因此,我使用节点js构建了一个信使机器人。我怎样才能做到:

  1. 每当用户发送随机文本(除了正确的命令外),Bot将回答“对不起,我无法识别该命令”。
  2. 如何使bot存储来自用户的文本,并在以后确认?用户:你好。机器人:还有什么?用户:世界。机器人:还有什么?用户:完成。机器人:我明白,机器人: 1。你好,机器人: 2。世界机器人:对吗?

这是我目前的1号剧本:

代码语言:javascript
复制
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")
}}

任何帮助都会感激..。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-03-29 09:08:25

第1号的解决办法:

代码语言:javascript
复制
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' )
    }

}

第2号的解决办法:

您必须在每次调用web钩子之间保存状态。遵循以下步骤。

解决这个问题有几种方法。你可以这样解决这个问题。通过更新每个web钩子调用上的covesation模型/对象来保存状态。将用户从facebook获得的唯一psid用作模型/对象的主键或组合键的一部分

票数 1
EN

Stack Overflow用户

发布于 2017-04-05 21:54:33

您还可以尝试使用BootBot (https://github.com/Charca/bootbot),这是一个nodejs框架,使Messenger bot开发相对容易。它具有便于检查用户输入和保存会话上下文的功能。

票数 1
EN

Stack Overflow用户

发布于 2017-03-28 08:35:57

对于你的第一个问题,一个开关/案例说明将是理想的。如果没有满足任何情况,默认操作将是“对不起,我无法识别该命令”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42945635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档