Telegram bot - 如何获得群聊ID?

Rom*_*tov 126 telegram telegram-bot

我一直在使用telegram_bot,并试图让groupChat id向群聊发送通知,但不知道我必须使用哪种方法.

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

Mav*_*ava 162

要获取群聊ID,请执行以下操作:

  1. 将Telegram BOT添加到组中.

  2. 获取BOT的更新列表:

    https://api.telegram.org/bot<YourBOTToken>/getUpdates
    
    Run Code Online (Sandbox Code Playgroud)

    例如:

    https://api.telegram.org/bot123456789:jbd78sadvbdy63d37gda37bd8/getUpdates
    
    Run Code Online (Sandbox Code Playgroud)
  3. 寻找"聊天"对象:

"从" 3::{ "UPDATE_ID":8393, "消息":{ "MESSAGE_ID"{ "ID":7474, "如first_name": "AAA"}, "聊天":{ "ID":"标题":" "}," 日期 ":25497",new_chat_participant ":{" ID ":71",如first_name ":" NAME", "用户名": "YOUR_BOT_NAME"}}}

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

  1. 使用"聊天"对象的"ID"发送您的消息.

  • 对于新创建的组`getUpdates`请求返回`{"ok":true,"result":[]}`即使我尝试向该组发送一堆消息并通过`@`和一些随机"命令"提到机器人`/ my_id`,`/ start`,`/ help`.有什么想法怎么办? - 更新:好的,从组中删除僵尸,并添加机器人修复此问题(也在组中打印聊天ID)---看起来在创建组时无法添加机器人. (18认同)
  • @tom,如果您得到 {"ok":true,"result":[]} ,请在机器人频道中输入一些内容。之后,您应该获得 chat_id (8认同)
  • 你好汤姆。您是否已经尝试过 rutsky 解决方案:“从组中删除 bot,然后重新添加 bot 解决了这个问题(它还在组中打印了聊天 id)---看起来在组创建期间无法添加 bot。”?我遇到过几次同样的问题,从组中删除机器人并重新添加它总是可以解决问题。如果这对您没有帮助,请告诉我。 (6认同)
  • 返回:{"ok":true,"result":[]} (5认同)
  • @WannaBeCoder,您可以像任何其他成员一样将BOT添加到组:转到您的组属性,单击添加成员,然后使用搜索图标查找BOT的名称.但是,请记住,自从最近对Telegrams组的更改以来,您必须是一个"admin"组来添加新成员,无论他们是否是BOT. (2认同)
  • 这将返回:{“ ok”:true,“ result”:[]} (2认同)

apa*_*ana 118

这是在经过几个小时的努力后对我有用的序列:

假设机器人名称是my_bot.

1-将bot添加到组中.
转到该组,单击组名称,单击添加成员,在搜索框中搜索您的机器人,如下所示:@my_bot,选择您的机器人,然后单击添加.

2-向机器人发送虚拟消息.
您可以使用此示例:( /my_id @my_bot
我尝试了一些消息,并非所有消息都有效.上面的示例工作正常.也许消息应该以/开头)

3-转到以下网址: https://api.telegram.org/botXXX:YYYY/getUpdates
将XXX:YYYY替换为机器人令牌

4-寻找"聊天":{"id": - zzzzzzzzzz,
-zzzzzzzzzz是你的聊天ID(带负号).

5- 测试:您可以测试使用curl向组发送消息:

curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"
Run Code Online (Sandbox Code Playgroud)

如果您错过了第2步,则无法更新您要查找的组.此外,如果有多个组,您可以在响应中查找组名称("title":" group_name ").

希望这可以帮助.

  • 我不能让我的机器人在小组中工作,我在浏览器中得到{"ok":true,"result":[]}.希望有人可以帮助我 (3认同)
  • 关于如何配置BOT的出色分手。 (2认同)
  • 这对我有用。一件事,如果您配置了 Webhook,则必须禁用它。谢谢! (2认同)
  • @TheMrkt好像apadana所说,sendind以`/`开头的消息(如`/ test something`)使getUpdates感到高兴。 (2认同)
  • 我不知道为什么它对我不起作用。我使用我的 https://api.telegram.org/here 包含我的机器人令牌/getUpdates,它根本不起作用。它一直说“{“ok”:false,“error_code”:404,“description”:“Not Found”}” (2认同)

eiv*_*amu 70

截至2018年中期,简单地说:

  • 邀请@RawDataBot加入您的论坛.

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

"message": {
    "chat": {
        "id": -210987654,
        "title": ...,
        "type": "group",
        ...
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

之后一定要从你的小组中踢出@RawDataBot.

  • @Cherona:我刚刚重新验证了它。但网络客户端似乎已经发生了变化,邀请机器人比以前更难了。操作方法如下: 在搜索字段中搜索 RawDataBot。单击联系人即可开始聊天会话。单击聊天标题打开“联系信息”。单击“添加到组”并选择组。它会像以前一样立即输出信息。希望对你有帮助。 (4认同)
  • 或者邀请@ShowJsonBot 加入您的小组。 (4认同)
  • @RawDataBot应该在哪里输出?我将该机器人添加到了我的小组,但是什么也没发生。更新:您需要在电报中设置用户名,否则什么也不会发生。 (2认同)
  • 截至 2021 年 5 月,一切正常。 (2认同)
  • 实际上是@raw_data_bot 帮我完成了这项工作。 (2认同)

zak*_*a35 68

我发现仅使用 telegram-web 的最简单方法:

  • 在浏览器中打开web.telegram(在我的例子中是 chrome )
  • 右键单击左侧菜单中的组名称
  • 单击“检查”按钮
  • 您将在属性 data-peer-id="-xxxxxxxxxx" 或 peer="-xxxxxxxxxx"中看到组 ID

群聊ID:-xxxxxxxxxx

频道聊天 ID : -100xxxxxxxxxx

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

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

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

  • 是的,似乎有一些更新可以隐藏 html 属性,但是您仍然可以在 web-telegram 中获取 id,一旦您单击聊天名称,该 id 就会出现在浏览器的地址栏上(对我来说是 chrome)https:// web.telegram.org/z/#-xxxxxxxx (6认同)
  • 在 url 中的组前面加上 -100 对我来说成功了,谢谢! (5认同)
  • 这是新方法。我找了一个多小时才找到,就是这个。太感谢了!另外:如果无法通过右键单击打开“检查元素”,请按 Ctrl+Shift+I 或 F12。 (2认同)

Sed*_*rei 32

2018年中期之后:
1 :)邀请@getidsbo@RawDataBot您的小组,并在已发送的聊天ID字段中获取您的小组ID.

Message
 ? message_id: 338
 ? from
 ?  ? id: *****
 ?  ? is_bot: false
 ?  ? first_name: ???
 ?  ? username: ******
 ?  ? language_code: en
 ? chat
 ?  ? id: -1001118554477    // This is Your Group id
 ?  ? title: Test Group
 ?  ? type: supergroup
 ? date: 1544948900
 ? text: A
Run Code Online (Sandbox Code Playgroud)

2 :)使用像Plus Messenger这样的unofficicl Messenger ,在组/频道信息中查看你的组ID.

在2018年中期之前:(不要使用)
1:转到(https://web.telegram.org)
2:转到你的Gorup并找到你的Gorup链接(https://web.telegram.org/#/im ?p = g154513121)
3:复制g之后的那个数字然后放一个( - )之前那个-154513121
4:发送你的消息给Gorup bot.sendMessage(-154513121, "Hi")
我现在测试并像魅力一样工作

  • '@welcomeworld'是您的频道用户名,您可以将邮件转发给'@getidsbot'并获取您的ID (2认同)

Muh*_*dyk 13

  • 继续选择的组
  • 添加@rose 机器人
  • 输入命令/id
  • 输入命令/id在此输入图像描述


小智 10

群聊 ID 应以-(减号)开头,这是必需的

This is wrong
10540154212

This is correct
-10540154212
Run Code Online (Sandbox Code Playgroud)


Yig*_*sel 9

您可以通过这种方式获得聊天ID.

在与您的机器人私聊时,发送随机消息.您稍后将搜索此消息.

从bot_father获取您的API令牌: XXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY

然后,在您的浏览器上使用该URL发出请求:

https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
Run Code Online (Sandbox Code Playgroud)

请求返回一个json响应,在json文本中搜索你的random message并在该对象中获取聊天ID.


Seb*_*mal 8

我对错误 {"ok":true,"result":[]} 的第二个解决方案

  1. 加入你的电报群
  2. 添加新用户(邀请)
  3. 搜索“getidsbot”=> @getidsbot
  4. 信息: /start@getidsbot
  5. 现在你看到了 ID。看起来像 1068773197,对于机器人来说是 -1001068773197(带有 -100 前缀)!!!
  6. 从组中踢出机器人。
  7. 现在转到 Webbrowser 发送此行(测试消息):
https://api.telegram.org/botAPITOKENNUMBER:APITOKENKEYHERE/sendmessage?chat_id=-100GROUPNUMBER&text=test

编辑 API 令牌和组 ID!


Chr*_*and 7

您可以以相同的方式检索组ID.它出现在消息正文中,message.chat.id并且通常是负数,正常聊天是正数.

只能从收到的消息中检索组ID和聊天ID,没有可用于检索活动组等的呼叫.您必须在收到消息时记住组ID并将其存储在缓存或类似内容中.


apa*_*ana 6

使用python和telethon可以很容易地获得聊天ID。此解决方案最适合使用电报API的用户。

如果您没有Telethon,请运行以下命令:

pip install telethon
Run Code Online (Sandbox Code Playgroud)

如果您没有使用电报注册的应用程序,请注册一个: 在此处输入图片说明 链接是这样的:https : //my.telegram.org/

然后运行以下代码:

from telethon import InteractiveTelegramClient
from telethon.utils.tl_utils import get_display_name

client = InteractiveTelegramClient('session_id', 'YOUR_PHONE_NUMBER', api_id=1234YOURAPI_ID, api_hash='YOUR_API_HASH')

dialog_count = 10
dialogs, entities = client.get_dialogs(dialog_count)
for i, entity in enumerate(entities):
                    i += 1  # 1-based index
                    print('{}. {}. id: {}'.format(i, get_display_name(entity), entity.id))
Run Code Online (Sandbox Code Playgroud)

您可能想向群组发送一条消息,以便该群组显示在列表顶部。


小智 5

创建一个机器人,或者如果已经创建了如下设置:

可以访问消息

显然,无论 Telegram 组的新旧程度如何:

  1. 将机器人添加到组中

  2. 从组中删除机器人

  3. 再次将机器人添加到组中

  4. 创建脚本文件并运行getUpdates方法示例:

    var vApiTokenTelegram = "1234567890:???>yg5GeL5PuItAOEhvdcPPELAOCCy3jBo"; // @?????Bot API token
    var vUrlTelegram = "https://api.telegram.org/bot" + vApiTokenTelegram;

    function getUpdates() {
        var response = UrlFetchApp.fetch(vUrlTelegram + "/getUpdates");
        console.log(response.getContentText());
    }
Run Code Online (Sandbox Code Playgroud)
  1. 函数应将以下内容记录到控制台:
[20-04-21 00:46:11:130 PDT] {"ok":true,"result":[{"update_id":81329501,
"message":{"message_id":975,"from":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"chat":{"id":-1001202656383,"title":"R\u00e1dioRN - A voz da na\u00e7\u00e3o!","type":"supergroup"},"date":1587454914,"left_chat_participant":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"left_chat_member":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"}}},{"update_id":81329502,
"message":{"message_id":976,"from":{"id":962548471,"is_bot":false,"first_name":"Trajano","last_name":"Roberto","username":"TrajanoRoberto","language_code":"en"},"chat":{"id":-1001202656383,"title":"R\u00e1dioRN - A voz da na\u00e7\u00e3o!","type":"supergroup"},"date":1587454932,"new_chat_participant":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"new_chat_member":{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"},"new_chat_members":[{"id":1215098445,"is_bot":true,"first_name":"MediaFlamengoRawBot","username":"MediaFlamengoRawBot"}]}}]}
Run Code Online (Sandbox Code Playgroud)
  1. 电报群chat_id可以从上面的消息中提取 "chat":{"id":-1001202656383,"title"


Abh*_*ash 5

/start您可以通过向机器人发送消息来获取您的 IDuserinfobot

注意:一旦您在 telegram 中搜索 userinfobot,您会得到很多回复。@bot确保您选择带有标签的那个