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

为了获得聊天id,当机器人参与聊天时,我使用message.chat.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

其他回答

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

邀请@RawDataBot到你的组。

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

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

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

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

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

群聊id: -xxxxxxxxxx

频道聊天id: -100xxxxxxxxxx

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

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

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

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

您可以以同样的方式检索组ID。它以message.chat.id的形式出现在消息体中,通常是一个负数,而正常的聊天则是正数。

组id和聊天id只能从收到的消息中检索,没有可用的调用来检索活动的组等。收到消息时必须记住组ID,并将其存储在缓存或类似的东西中。

你可以通过这种方式获取聊天ID。

在与机器人的私人聊天中,随机发送一条消息。稍后您将搜索此消息。

从bot_father: XXXXXXXXX: yyyyyyyyyyyyyyyyyyyyy_yy获取api令牌

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

https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates

请求返回一个json响应,在json文本中搜索你的随机消息,并在该对象中获得聊天id。