如何跟踪用户在回答什么问题?

问题描述 投票:0回答:1

我的Messenger聊天机器人正在询问的一些问题需要文本输入。在button template中,我可以设置payload,这样我就知道用户究竟选择了什么,并根据该信息进行处理。但是对于文本回复,我需要过滤用户答案是否与“更改地址,开票,退货等”有关。 例如:

bot-question: What is your new phone number?
user-answer: +123 123 12345

现在在后端,我正在这样做:

if(user-answer in_array('billing keywords') {
    // code
} elseif (user-answer in_array('delivery keywords')) {
    // code
} elseif (user-answer in_array('payments keywords')) {
    // code
} elseif (user-answer in_array('change-phone-number keywords')) {
    // Finally got where I wanted 🎉😒
}

不可能以某种方式在机器人问题中添加一些标签,所以我已经知道答案将与change-phone-number keywords相关?例如这样:

  "template_type" => "text",
  "text" => "What is your new phone number?",
  "payload" => "changing_phone_number"
facebook-messenger facebook-messenger-bot messenger
1个回答
0
投票

最后,不可能从普通短信中获得一些postback,所以我做了,我创建了其他列:

  • expecting_billing_info
  • 电话号码更新

而且我默认将其设置为0,但是当机器人询问类似问题时:

您想更改您的电话号码吗?

我将其设置为1,并且当用户在其中输入时:

if (expecting_phone_number_update == 1) {
    // 1. get the message
    // 2. Check if it's correct phone number format
    // 3. Reply based on 2. and update phone number
} elseif (expecting_billing_info == 1) {
    // ...
}

这不是完全干净的解决方案,但是可以完成工作。我们希望Messenger也有一天会发布此回发功能,以接收正常消息! :)

© www.soinside.com 2019 - 2024. All rights reserved.