1

我正在使用 php 和 web hook 开发一个电报机器人。一切都很好,但有时我想“等待用户回复”。例如:

如果客户端写入 /info 没有任何参数,我想显示“使用”消息并询问并等待 ID 参数。

我知道有一个属性“ForceReply”可以强制回复,但是当我设置它时没有任何反应,而且我不知道如何知道客户端消息是否是对我问题的回复。

我必须暂停我的 php 服务器吗?(我认为这将是一个不好的做法)我必须为某种类型的消息做什么?

谢谢

4

1 回答 1

1

当您getUpdates通过 webhook 使用或接收更新时,更新消息将包含类似字段的reply_to_message字段。您可以使用它与您发送的消息进行比较。

如果您通过 webhook 运行脚本,我会假设它仅在收到消息时执行。如果是这样,我建议您使用 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 中使用这些代码来检查对特定消息的回复。

于 2015-07-10T06:03:23.173 回答