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

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


当前回答

去你选择的小组吧 添加@rose机器人 输入命令/id 输入命令/id

其他回答

我想说的是一个非常具体的案例让我绕开了它。

我已经得到了上面步骤的chat_id格式如-1001379XXXXXX。因此,我假设真实的id是1001379XXXXXX,并将其以这样的格式留给grafana管理页面。但事实上,id得到了这个,作为积分部分。如果真的需要和数字一起复制。

去你选择的小组吧 添加@rose机器人 输入命令/id 输入命令/id

我不明白为什么最明显(可能也是最简单)的答案不在这里。

当你在写一个bot时,你可以用这三行简单的代码获取id:

bot.on('message', (msg) => {
  console.log(msg)
})

然后从控制台检查groupId:D

当你可能试图查看groupId,以便能够用你的bot向一个组发送消息时,正确答案可能是这样的:

你不再使用groupId了。您使用组名(带有https://t.me/careless_whisper的组名)加上@前缀。记住,你的小组必须是公开的。来源:Telegram API

因此,如果你的组名是careless_whisper,收件人将是@careless_whisper

我现在测试了4h,但它不工作2021与群聊id。错误{"ok":true,"result":[]}

但现在我找到了一个解决方案:

1)安装“Plus Messenger”(https://play.google.com/store/apps/details?id=org.telegram.plus)

2:)进入群组=>现在在群组头部点击“Group- name”=>现在在群组标题上双击。信息即将到来:ID123456789是剪贴板中的副本

3:)进入组,粘贴剪贴板文本。是你,地面id

4:)看起来像1068773197,这是机器人的-1001068773197(有-100前缀)!!

顺便说一下,你也可以在你的个人资料上看到用户id。

5:)现在转到web浏览器,发送这行(测试消息):

https://api.telegram.org/botAPITOKENNUMBER:APITOKENKEYHERE/sendmessage?chat_id=-100GROUPNUMBER&text=test

编辑API令牌和Group-ID!

依我看,最好的办法是使用TeleThon,但鉴于apadana的答案已经过时,无法修复,我将在这里写下工作解决方案:

import os
import sys
from telethon import TelegramClient
from telethon.utils import get_display_name

import nest_asyncio
nest_asyncio.apply()

session_name = "<session_name>"
api_id = <api_id>
api_hash = "<api_hash>"
dialog_count = 10 # you may change this

if f"{session_name}.session" in os.listdir():
    os.remove(f"{session_name}.session")

client = TelegramClient(session_name, api_id, api_hash)

async def main():
    dialogs = await client.get_dialogs(dialog_count)
    for dialog in dialogs:
        print(get_display_name(dialog.entity), dialog.entity.id)

async with client:
    client.loop.run_until_complete(main())

这个片段将为您提供Telegram中的前10次聊天。

假设:

您已经安装了telethon和nest_asyncio 你有来自my.telegram.org的api_id和api_hash