我一直在使用telegram_bot,并试图获得groupChat id发送通知到组聊天,但不知道我必须使用哪些方法。
为了获得聊天id,当机器人参与聊天时,我使用message.chat.id,但我必须使用它来获得组聊天id,无法找到/
我一直在使用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