gpt4 book ai didi

telegram-bot - 使用 Telegram 机器人检索所有聊天 ID

转载 作者:行者123 更新时间:2023-12-04 04:16:05 25 4
gpt4 key购买 nike

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

想象一下,在机器人执行期间,与用户 A 进行了对话。

现在我停止机器人进程并重新启动它。

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

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

在第二次执行开始时存储 id 并检索它们是唯一的选择吗?

更新:

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

最佳答案

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

In Telegram Bot API there is two definitions: chat_id and from_id.

1-When we are in private chat with some one chat_id and from_id are equal.

2-When our bot is a group member, then chat_id is id of that group and is different from that person id(from_id) may be send something to group(and maybe our bot receive it too-when privacy_mode is off)


我假设您的机器人在私有(private)聊天中:
当用户向您的机器人发送任何内容时,Telegram 将该消息提供给您的 BOT(调用您的脚本),此示例代码将“Hello chat_id”发送给该用户。(在 PHP 中)
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)
更新:(由于有问题的版本)
首先, chat_id 是唯一的,并且对于该用户始终是永久的(在私有(private)聊天中)
即使您的机器人用户离开您的机器人并重新加入。
到目前为止,我没有听到或读到 Telegram 提供了一种方法来告诉您的 bot 整个用户 chat_id ,因此了解您的用户的最佳方法是保存他们的 chat_id 和其他信息(您收集的从用户接收消息的时间)在数据库中。
如果您至少将他们的 chat_id 保存在一个简单的数据库中,那么您就有一个机器人订阅用户的列表。由于 chat_id 是永久性的,因此您可以将任何您想要的内容发送给您的用户。
而且,正如我从您的问题中了解到的那样,如果您没有数据库,但用户 A 是您的机器人的订阅用户,据我所知,您应该等到她/他向您发送一条消息,然后您捕获她/他 chat_id并将其添加到您的数据库中。现在您可以随时发送她/他。

关于telegram-bot - 使用 Telegram 机器人检索所有聊天 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38686587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com