如何跟踪用户回答的问题?
How to keep track of what question user is responding to?
我的 Messenger 聊天机器人提出的一些问题需要文本输入。在 button template 中,我可以设置 payload,这样我就知道用户究竟选择了什么,并据此进行处理。但是对于文本回复,如果用户回答与 "Change address, Billing, Returns, etc." 有某种关系,我需要过滤例如:
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"
最后无法从普通短信中获取一些 postback
,所以我做了什么,我创建了额外的列:
- expecting_billing_info
- expecting_phone_number_update
- 等等
我默认将其设置为 0
,但是当机器人问这样的问题时:
Would you like to change your phone number?
我将其设置为 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 有一天也能为普通消息发布此回发功能! :)
我的 Messenger 聊天机器人提出的一些问题需要文本输入。在 button template 中,我可以设置 payload,这样我就知道用户究竟选择了什么,并据此进行处理。但是对于文本回复,如果用户回答与 "Change address, Billing, Returns, etc." 有某种关系,我需要过滤例如:
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"
最后无法从普通短信中获取一些 postback
,所以我做了什么,我创建了额外的列:
- expecting_billing_info
- expecting_phone_number_update
- 等等
我默认将其设置为 0
,但是当机器人问这样的问题时:
Would you like to change your phone number?
我将其设置为 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 有一天也能为普通消息发布此回发功能! :)