Telegram bot 使用电报机器人检索所有聊天ID

Telegram bot 使用电报机器人检索所有聊天ID,telegram-bot,Telegram Bot,主要的问题是,我如何获得与机器人进行的所有对话的聊天ID 假设在执行bot的过程中,有一个与用户a的对话 现在我停止bot进程并再次启动它 如何获取过去与用户A聊天的聊天id 我知道当用户向您发送消息时,您会获得聊天id,您会使用该id进行回复,但是如果用户a在当前执行期间不再向bot发送消息,该怎么办?如何获取过去的对话id 是否只有一个选项可以存储ID并在第二次执行开始时检索它们 更新: 看起来当前的解决方案是将聊天id存储在安全的地方,如@Tick Tock所回答。我不清楚您的问题,但据我

主要的问题是,我如何获得与机器人进行的所有对话的聊天ID

假设在执行bot的过程中,有一个与用户a的对话

现在我停止bot进程并再次启动它

如何获取过去与用户A聊天的聊天id

我知道当用户向您发送消息时,您会获得聊天id,您会使用该id进行回复,但是如果用户a在当前执行期间不再向bot发送消息,该怎么办?如何获取过去的对话id

是否只有一个选项可以存储ID并在第二次执行开始时检索它们

更新:


看起来当前的解决方案是将聊天id存储在安全的地方,如@Tick Tock所回答。

我不清楚您的问题,但据我了解,我写了一些东西给您,希望对您有所帮助。您可以检索
chat\u id
s并使用它向该
chat
发送内容。我会给出一个示例代码,但在解释之前,让我先解释一下

在电报机器人API中有两种定义:
chat\u id
from\u id

1-当我们在
private
与某人聊天时
chat\u id
from\u id
是相等的

2-当我们的bot是
组成员时,则
聊天id
是该组的id,与该组的id不同(
来自id
),可能会向组发送一些内容(并且当
隐私模式关闭时,我们的bot也可能会收到)

我假设您的机器人处于私人聊天状态: 当用户向您的bot发送任何信息时,Telegram会将该消息发送给您的bot(调用您的脚本),此示例代码会向该用户发送“Hello chat_id”(PHP中)

更新:(由于版本有问题)

首先,
chat\u id
对于该用户来说是唯一的,并且总是永久的(在私人聊天中) 即使您的机器人的用户离开您的机器人并再次加入。 到目前为止,我没有听到或读到任何消息,电报已经提供了一种方法来告诉你的
bot
及其所有用户
chat\u id
,因此了解你的用户的最好方法是将他们的
chat\u id
和其他信息(你从用户收到的消息中收集的)保存在数据库中

如果您在一个简单的数据库中至少保存了他们的
聊天id
,那么您就有了一个bot订阅用户的列表。由于
chat\u id
是永久性的,您可以向用户发送任何您想要的内容


而且,正如我从你的问题中了解到的,如果你没有数据库,但用户a是你机器人的订阅用户,正如我所知,你应该等到她/他向你发送一条消息,然后你抓取她/他
聊天id
,并将其添加到你的数据库中。现在,您可以每次发送任何信息给她/他。

在您的回答中,您是在回复刚收到的信息,我想向旧对话发送一条信息。我希望在API中调用GetAllChats之类的东西。。。
define('BOT_TOKEN','12345:abcde');//replace with your bot token
$command_prefix_url='https://api.telegram.org/bot' . BOT_TOKEN ;

$update = json_decode(file_get_contents('php://input')); //retrieves data sent by telegram

$chat_id=$update->message->chat->id; //retrives `chat_id`

$rep = json_decode(file_get_contents($command_prefix_url . '/SendMessage?chat_id=' .
    $chat_id    . '&text=' . urldecode('Hello '.(string)$chat_id))); //send something to that `chat_id` (sender)