2016-07-08 125 views
0

嗨我正在为产品制作新的机器人,我需要询问客户的登录ID和密码。Conversation facebook messenger bot

所以对我而言,用户将启动一个会话通过键入hi那么机器人就会回复Hey! How can I help you,这里如果顾客进入I want to transfer money然后机器人将响应Please enter a login ID,先在这里的客户将进入登录ID和机器人会回应Enter your password那么它是这样这个。

我在节点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然后机器人会要求输入密码。

在此先感谢。

回答

0

我认为最好的办法是发送一个外部链接给客户,或发送一个带有url按钮的结构化消息,客户可以点击并链接到外部。所以你的外部链接应该带上用户的sender_id。一旦您的客户通过外部链接登录,您的回调函数就可以告诉机器人发送登录成功!消息,那么你可以继续谈话。

+0

有没有办法做到这一点没有信使机器人外重定向? – MrOnyancha

3

我不认为在纯文本消息中要求用户和密码是不安全的方式来实现,也不好的用户体验。

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

或看看

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

帐户链接开始验证过程允许Messenger用户使用您自己的身份验证流程登录, d链接他或她的 企业帐户。

+0

我不认为帐户链接的作品?任何在现实生活中工作的样本? https://github.com/Microsoft/BotBuilder/issues/2274 – MrOnyancha