node.js - 对话式 Facebook Messenger 机器人

标签 node.js facebook bots facebook-messenger

您好,我正在为一个产品制作一个新机器人,我需要询问客户登录 ID 和密码。

因此,对于我的情况,用户可以通过输入 hi 发起对话,然后机器人会回复 嘿!我该如何帮助您,这里如果客户输入我想转账,那么机器人会响应请输入登录ID,首先这里客户将输入登录ID,机器人会响应输入您的密码,然后就像这样。

我在 Node js 中做了如下操作,这对我来说似乎不是正确的方法。

app.post('/webhook/', function (req, res) {

    let messaging_events = req.body.entry[0].messaging
    for (let i = 0; i < messaging_events.length; i++) {
        let event = req.body.entry[0].messaging[i]
        let sender = event.sender.id
        if (event.message && event.message.text) {
            let text = event.message.text.toLowerCase();
            var greets = ['hi', 'hey', 'hello', 'good morning', 'good evening']
            if(greets.indexOf(text) > -1) {
                sendTextMessage(sender, 'Hey! How can I help you ?')
            }
            else if((text.indexOf('money transfer') > -1) || (text.indexOf('transfer money') > -1)) {
                sendTextMessage(sender, 'OK. Please enter your login details.')
                lastMessage = 'Please enter your login ID.'
            } else if(text.indexOf('restart') > -1) {
                lastMessage = ''
                sendTextMessage(sender, 'Thanks, Give a seconds to me :)')
            }
            else {
                sendTextMessage(sender, 'Huh! Uhhh broke me :(')
            }
        } else if (event.postback) {
            var payload = event.postback.payload;
            if(payload) {
                // When a postback is called, we'll send a message back to the sender to 
                // let them know it was successful.
                // do nothing
                switch (payload) {
                    case 'USER_DEFINED_PAYLOAD':
                        sendTextMessage(sender, 'Welcome to XXX, What are you looking for today ?')
                        break;
                }
            }
            console.log("Postback received: " + JSON.stringify(event.postback));
        }
    }
    res.sendStatus(200)
})

实现我的案例的最佳方法是什么,如果用户输入登录 ID 然后机器人会要求密码,将如何维护流程。

提前致谢。

最佳答案

我认为以纯文本消息形式询问用户和密码不是安全的实现方式,而且用户体验也很差。

相反,请提供用于用户登录过程的外部链接

或者看看

帐户关联
https://developers.facebook.com/docs/messenger-platform/account-linking

Account Linking starts a authentication process allowing a Messenger user to log-in using your own authentication flow, and link his or her business account.

关于node.js - 对话式 Facebook Messenger 机器人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38268733/

相关文章:

node.js - Mongoose 批量插入错误

c# - 将图像上传到 Skype BOT

ios - 苹果评论中应用程序在 Facebook 上崩溃

iphone - cocos2d facebook 集成失败

xcode - 如何在 xcode 中删除过时的机器人

python - Python 中的 Discord 机器人。同时播放两个音频文件

node.js - 修复 Ubuntu 上的 npm 全局安装

javascript - 为什么在这种情况下 try and catch 不起作用?

javascript - `util.inherits` 和扩展 NodeJS 原型(prototype)的区别

facebook - 在哪里可以找到我的 Facebook 受众 ID?