我一直在使用telegram_bot,并试图获得groupChat id发送通知到组聊天,但不知道我必须使用哪些方法。

为了获得聊天id,当机器人参与聊天时,我使用message.chat.id,但我必须使用它来获得组聊天id,无法找到/


当前回答

截至2021年5月,简单地说:

邀请@RawDataBot到你的组。

加入后,它将输出一个JSON文件,其中您的聊天id将位于message.chat.id。

"message": {
    "chat": {
        "id": -210987654,
        "title": ...,
        "type": "group",
        ...
    }
    ...
}

之后一定要把@RawDataBot从组中踢出去。

其他回答

要获取群聊id,请执行以下步骤:

将Telegram BOT添加到群组中。 获取BOT的更新列表:

https://api.telegram.org/bot<YourBOTToken>/getUpdates

Ex:

https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates

查找"chat"对象:

{“update_id”:8393年,“消息”:{“message_id”:3,"从":{" id ": 7474年,“first_name”:“AAA”},“聊天”:{" id ": < group_ID >,“标题”:"},“日期”:25497年,“new_chat_participant”:{" id ": 71年,“first_name”:“名字”,“用户名”:“YOUR_BOT_NAME”}}}

这是将BOT添加到组中时的响应示例。

使用"chat"对象的"id"发送消息。 (如果你用bot创建了一个新的组,你只得到{"ok":true,"result":[]},删除并重新添加bot到组中) 私有图表只适用于image argoprojlabs/argocd-notifications:v1.1.0或更高版本。

如果您正在实现您的bot,则保留存储的组名-> id表,并使用命令询问它。然后还可以按名称发送。

在我挣扎了几个小时后,下面是对我有用的顺序:

假设机器人名称为my_bot。

1-将机器人加入群组。 进入群组,点击群组名称,点击添加成员,在搜索框中像这样搜索你的bot: @my_bot,选择你的bot,点击添加。

2-发送一个虚拟消息给机器人。您可以使用以下示例:/my_id @my_bot (我试了一些消息,不是所有的消息都有效。上面的例子工作得很好。也许这条信息应该以/开头。

3-访问以下url: https://api.telegram.org/botXXX:YYYY/getUpdates 用你的bot令牌替换XXX:YYYY

4-查找"chat":{"id":-zzzzzzzzzz, -zzzzzzzzzz是你的聊天id(带负号)。

5-测试:你可以用curl测试发送消息到组:

curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"

如果您错过了第2步,则您正在寻找的组将没有更新。另外,如果有多个组,您可以在响应中查找组名("title":"group_name")。

我发现的最简单的方法是只使用电报网:

开放网络。电报在浏览器(在我的情况下chrome) 右键单击左侧菜单上的组名 点击“检查”按钮 您将在属性中看到组id Data-peer-id ="-xxxxxxxxxx" or peer="-xxxxxxxxxx"

群聊id: -xxxxxxxxxx

频道聊天id: -100xxxxxxxxxx

(对于某些频道/组,您需要添加-100前缀)

编辑: 在某些情况下,当您单击组名时,ID会显示在浏览器的地址栏中

https://web.telegram.org/z/#-xxxxxxxxxx

群组聊天id应该以-(减号)开头

This is wrong
10540154212

This is correct
-10540154212