我正在使用php和web hook开发一个电报机器人。一切都很好,但有时我想“等待用户回复”。例如:
如果客户端写入/ info没有任何参数,我想显示“使用”消息并询问&等待ID参数。
我知道有一个属性“ForceReply”强制回复,但是当我设置它没有任何反应时,我不知道如何知道客户端是否回复了我的问题。
我必须暂停我的php服务器吗? (我认为这是一个不好的做法)我是否需要为一种消息做什么?
由于
答案 0 :(得分:0)
当您使用getUpdates
或通过webhook接收更新时,更新消息将包含类似reply_to_message
字段的字段。您可以使用它将其与您发送的邮件进行比较。
如果您通过webhooks运行脚本,我会认为它只在收到消息时执行。如果是这样,我建议您使用memcache / redis之类的东西来存储您希望回复的消息,然后在回复时,您可以将其与存储的值进行比较:
<?php
// This script triggers as a webhook
$message = file_get_contents('php://input');
$message = json_decode($message, true);
$cache = new RedisClient('localhost');
if ($message->reply_to_message == $cache->get('original.message.id'))
{
var_dump('message reply received');
}
上面的示例是一些“伪”代码,您可以在webhook中使用它来检查对特定邮件的回复。