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

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


当前回答

2018年代中期之后: 1)邀请@getidsbot或@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

2:)使用非官方的聊天工具,比如Plus Messenger,在群组/频道信息中查看你的群组id。

2018年年中之前:(不要使用) 1: Goto (https://web.telegram.org) 2:去你的Gorup,找到你的Gorup链接(https://web.telegram.org/#/im?p=g154513121) 3:复制g后面的数字,在前面加一个(-)-154513121 4:发送你的信息给Gorup 机器人。“嗨”sendMessage (-154513121) 我现在就测试了,效果很好

其他回答

function adminCheck( chat_id, name ) {
var bAdminCheck = false;
var contents = JSON.parse( getAdmin( chat_id ) );      
var i = 0;
while( !bAdminCheck && (i < contents.result.length ) ) {
    if( name == (contents.result[i].user.first_name + " " + contents.result[i].user.last_name) ) {
        bAdminCheck = true;  
    }
    i++;
}  
return bAdminCheck;

}

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

This is wrong
10540154212

This is correct
-10540154212

使用python和telethon,很容易获得聊天id。这个解决方案最适合那些使用电报API的人。

如果你没有电视马拉松,运行这个:

pip install telethon

如果你没有telegram的注册应用,注册一个: 链接如下: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))

您可能希望向您的群组发送消息,以便该群组显示在列表顶部。

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

假设机器人名称为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")。

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

当你在写一个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