2016-07-08 10 views
0

Привет, я делаю новый бот для продукта, где мне нужно задать идентификатор и пароль для входа в систему.Разговорник facebook messenger bot

Так что для моего случая, пользователь должен начать разговор, набрав hi то бот будет отвечать Hey! How can I help you, вот если клиент ввести I want to transfer money тогда бот ответит Please enter a login 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) 
}) 

Что является лучшим способом для достижения моего случая, как поток будет поддерживаться, если пользователь вводит логин идентификатор, то бот будет запрашивать пароль.

Заранее благодарен.

ответ

0

Я думаю, что лучший способ - отправить внешнюю ссылку клиенту или отправить структурированное сообщение с помощью кнопки URL-адреса, которую клиент мог бы щелкнуть и связать с внешним видом. Таким образом, ваша внешняя ссылка должна приносить пользователю sender_id. После того, как ваш клиент вошел в систему по внешней ссылке, ваша функция обратного вызова могла бы сообщить боту о том, что вы отправите успех входа в систему!, вы можете продолжить разговор.

+0

Есть ли способ сделать это без перенаправления за борта посланника? – MrOnyancha

3

Я не думаю, что попросить пользователя и пароль в текстовом сообщении, это не безопасный способ реализации, а также плохой пользовательский интерфейс.

Вместо обеспечить внешнюю ссылку для пользователя процесса

логина или взглянуть на

счет Связывание
https://developers.facebook.com/docs/messenger-platform/account-linking

счет Linking запускает процесс аутентификации, разрешающий Messenger для входа в систему, используя собственный поток аутентификации, d связать свой бизнес-счет .

+0

Я не думаю, что Учет ссылок работает? любые образцы, которые работают в реальной жизни? https://github.com/Microsoft/BotBuilder/issues/2274 – MrOnyancha

Смежные вопросы