【发布时间】:2017-05-21 12:36:24
【问题描述】:
目前,我有一个 Python 代码。这会处理来自 Facebook Messenger 用户的传入消息。但这是针对聊天机器人的被动聊天。我想做以下事情。
User: Pay
Bot: Please type the username of the person you want to pay.
User: eddwinpaz
Bot: Please type the amount you want to send.
User: 100.00
Bot: Are you sure you want to send 100.00 to Eddwinpaz?
如果此对话中的用户没有按照确切的顺序回答,应用程序将无法进行付款。有一种方法可以获取先前的文本并查看其是否以正确的顺序回答。或者给出一些逻辑以便存储在 session_array[sender_id,username,amount] 中,在我向用户发送一个 Button(Yes,No) 之后,我可以实际执行付款。
因为我需要在服务器上存储有关问题的值。另一个例子是。
Bot: what is your email?
User: myemail@gmail.com
Bot: your email has been saved!
【问题讨论】:
-
输入验证呢?例如,第一个答案必须是支付系统中存在的有效用户名?第二个是有效数字等
-
但不知何故我需要知道上下文。因为我只得到答案,但没有得到上下文。我可以从什么得到“是”但“是”? :( 我试图将其存储在会话中,但该文本来自什么问题?html 表单包含 name="myfield" 和 value="myvalue"
-
如果我向机器人提出问题,我可以回答。喜欢什么天气.. 但不是相反。因为机器人知道上下文,但我不知道。
-
对不起,除非有更多关于架构的信息,否则如果没有创建 FB 机器人的经验,很难理解问题出在哪里。您能否描述一下用户、机器人和服务器之间通信的请求/响应格式?
-
@Taras 用户类型 Pay 和 facebook 将此支付文本消息发送到我的服务器,之后我解析 if 条件 if "pay" in message_text: 然后我执行一系列问题,如您在上面看到的。问题是他可以回答任何问题,我将无法遵循正确的上下文我需要找到一种方法来获取“我问用户的内容”的上一条消息,这样我就可以向他发送下一个问题并验证信息适当地。到目前为止,这对我来说是不可能的。
标签: python facebook facebook-messenger-bot