2017-08-12 113 views
-1

我想为月薪制作电报Bot。 用户发送用户名,然后发送密码。 机器人发送工资信息。 的问题是在这里,用户发送工资的命令, 我想送如何等待用户答案并保留选择的答案

bot: user name 
user: tiger 
bot: password 
user: 985468 

我有问题等待用户,并保持了第一条消息(用户名)。

+2

保持您的用户记录数据在数据库,文件或更好的解决方案:redis。 – tashakori

回答

2

电报API不允许你这样做。 虽然你可以用几种方法做到这一点。

  • 你可以使用你的数据库来存储这个对话的状态
  • 你可以要求用户回复您的邮件,以便您可以检查的回复是什么消息
  • 你可以使用内嵌的键盘当它是可能的(选择选择),所以你可以检查callback_data
  • 你可以要求用户用一个特定的关键字开始消息
  • 你可以要求用户写一个消息的所有可能分为字符,然后你分裂该字符

现在有什么对用户更好?

  • 用户更好的第一个选项,让您存储会话的状态在数据库中,机器人得到消息后,您检查对话的状态,你会得到什么被称为

什么对你更好?

  • 我会说你最好使用回复黑客,所以你不需要一个数据库来存储每个用户的聊天状态。你可以使用force_reply参数来让用户更清楚。

  • 我会推荐使用内联键盘时,因为他们使事情更容易使用callback_data。例如你向用户要求年龄,你可以用80个按钮回复(100是限制),他可以按正确的年龄。这更好,因为当用户写文本而不是数字时(例如他写ten而不是10),您不必担心奇怪的情况,而且您不需要检查数据库状态或检查回复。你只需检查callback_data。一个想法是,每个按钮都可以有一个以“age_ {年龄选项}”开头的callback_data,并且您可以处理callback_data,从age_开始,只接受最后一部分。你不需要检查答复,你不需要处理奇怪的情况,当用户发送错误的格式,你只需要处理回调

1

在DataBase中保存User Action StepUser Input Data。 并在每收到邮件检查User Action Step做正确的工作。

1

您可以发送Hi Sean, please enter your passwordForceReply,并阅读.message.reply_to_message.text字段。

我认为这是解决此问题的唯一方法,但我建议您使用自己的数据库,如其他答案。

+0

首先我应该得到用户名和密码 – Morteza