Telegram 电报机器人-如何获取群组聊天id?
我一直在使用,并试图让groupChat id向groupChat发送通知,但不知道我必须使用哪些方法Telegram 电报机器人-如何获取群组聊天id?,telegram,telegram-bot,Telegram,Telegram Bot,我一直在使用,并试图让groupChat id向groupChat发送通知,但不知道我必须使用哪些方法 对于获取聊天id,当bot参与聊天时,我使用message.chat.id获取聊天id,但我必须使用它获取群组聊天id,但找不到该id/您可以使用相同的方法获取群组id。它在消息正文中显示为message.chat.id,通常为负数,正常聊天为正数 组ID和聊天ID只能从收到的消息中检索,没有可用于检索活动组等的呼叫。您必须在收到消息时记住组ID,并将其存储在缓存或类似内容中。要获取组聊天ID
对于获取聊天id,当bot参与聊天时,我使用message.chat.id获取聊天id,但我必须使用它获取群组聊天id,但找不到该id/您可以使用相同的方法获取群组id。它在消息正文中显示为
message.chat.id
,通常为负数,正常聊天为正数
组ID和聊天ID只能从收到的消息中检索,没有可用于检索活动组等的呼叫。您必须在收到消息时记住组ID,并将其存储在缓存或类似内容中。要获取组聊天ID,请执行以下操作:
https://api.telegram.org/bot<YourBOTToken>/getUpdates
{“ok”:true,“result”:[]}
,请删除bot并将其再次添加到组中)
在挣扎了几个小时后,我的工作顺序如下: 假设bot名称为my\u bot 1-将机器人添加到组。
转到组,单击组名,单击添加成员,在搜索框中搜索您的机器人,如下所示:@my_bot,选择您的机器人,然后单击添加 2-向bot发送虚拟消息。
您可以使用以下示例:
/my\u id@my\u bot
(我尝试了一些消息,但不是所有的消息都有效。上面的示例很好。也许消息应该以/) 3-转到以下url:
https://api.telegram.org/botXXX:YYYY/getUpdates
用您的机器人令牌替换XXX:YYYY 4-查找“聊天”:{“id”:-zzzzzzzz,
-zzzzzzzz是您的聊天id(带负号) 5-测试:您可以使用以下命令测试向组发送消息:
curl -X POST "https://api.telegram.org/botXXX:YYYY/sendMessage" -d "chat_id=-zzzzzzzzzz&text=my sample text"
如果您错过了步骤2,将不会更新您正在查找的组。此外,如果有多个组,您可以在响应(“title”:“group\u name”)中查找组名
希望这有帮助。使用python和telethon,很容易获得聊天id。此解决方案最适合使用TelegramAPI的用户 如果您没有telethon,请运行以下命令:
pip install telethon
如果您没有使用telegram注册的应用程序,请注册一个:
链接如下:
然后运行以下代码:
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))
您可能希望向您的群组发送消息,以便该群组显示在列表的顶部。自2021年5月起,只需:
- 邀请@RawDataBot加入您的团队
"message": {
"chat": {
"id": -210987654,
"title": ...,
"type": "group",
...
}
...
}
之后一定要从小组中踢出@RawDataBot。你可以通过这种方式获得聊天ID 在与您的机器人进行私人聊天时,发送一条随机消息。您稍后将搜索此消息 从bot_父节点获取API令牌:
xxxxxxxx:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
然后,在浏览器上使用该url发出请求:
https://api.telegram.org/botXXXXXXXXX:YYYYYYY-YYYYYYYYYYYYYYYYY_YY/getUpdates
请求返回一个json响应,在json文本中搜索您的随机消息
,并获取该对象中的聊天id。2018年年中之后:
1:)邀请或@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:)使用非官方的Messenger,如,并在群组/频道信息中查看您的群组id
2018年年中之前:(不要使用)
1:Goto()
2:转到Gorup并找到Gorup()的链接
3:将该数字复制到g后面,并在其前面加上一个(-)-15451321
4:将您的消息发送给Gorup
bot.sendMessage(-15451321,“Hi”)
我现在进行了测试,工作起来很有魅力。我认为最好的方法是使用TeleThon,但鉴于by已经过时,无法修复,我将在这里编写工作解决方案:
导入操作系统
导入系统
从telethon导入电报客户端
从telethon.utils导入获取\u显示\u名称
导入嵌套异步
nest_asyncio.apply()
session_name=“”
api_id=
创建一个机器人,或者如果已经创建,则设置如下:
有权访问消息
显然,不管电报组有多旧/多新:
将bot添加到组中
从组中删除bot
再次将bot添加到组中
创建脚本文件并运行getUpdates
方法
例如:
var vApiTokenTelegram=“1234567890:?>yg5GeL5PuItAOEhvdcPPELAOCCy3jBo”/@@@Bot-API令牌
var vUrlTelegram=”https://api.telegram.org/bot“+vApiTokenTelegram;
函数getUpdates(){
var response=UrlFetchApp.fetch(vUrlTelegram+“/getUpdates”);
log(response.getContentText());
}
功能应将以下信息记录到控制台:
可以从上述消息中提取电报组聊天室id
“chat”:{“id”:-1001202656383,“title”
如果您正在实现bot,请保存一个group name->id表,并用命令询问。然后您也可以按名称发送。我现在测试了4h,但2021年group-chat-id不起作用。始终出现错误{“ok”:true,“result”:[]}
但现在我找到了一个解决方案:
1:)安装“Plus Messenger”()
2:)进入组=>点击否
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
[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"}]}}]}
https://api.telegram.org/botAPITOKENNUMBER:APITOKENKEYHERE/sendmessage?chat_id=-100GROUPNUMBER&text=test
https://api.telegram.org/botAPITOKENNUMBER:APITOKENKEYHERE/sendmessage?chat_id=-100GROUPNUMBER&text=test
bot.on('message', (msg) => {
console.log(msg)
})