如何在电报机器人中使用ForceReply

时间:2015-07-09 21:03:35

标签: php telegram-bot

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

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

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

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

由于

1 个答案:

答案 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中使用它来检查对特定邮件的回复。