Telegram API报错Bad Request: chat not found,求正确ChatID用法
正确调用Telegram API getChatMembersCount的Chat ID用法
问题核心原因
你通过CheckChatInviteRequest拿到的频道ID格式本身没问题,但你的账号(或调用API的Bot)并未加入该频道/群组,这才是导致chat not found错误的关键——Telegram官方API要求调用者必须是目标聊天的成员(Bot需被管理员添加),才能访问诸如成员数这类信息,而CheckChatInviteRequest仅验证邀请链接有效性,不需要加入就能返回基础信息。
正确操作步骤
确保账号/Bot已加入目标频道
- 如果是个人账号,用Telethon执行加入操作:
from telethon.sync import TelegramClient from telethon import functions, types with TelegramClient('none', 111111, '12a12b12c12d12e12f12g12h') as client: # 通过邀请链接hash加入频道 client(functions.messages.ImportChatInviteRequest(hash='AAAAAAAABBBBBBB')) - 如果是Bot,需要频道管理员将Bot添加到频道中,并授予至少「查看成员」的权限。
- 如果是个人账号,用Telethon执行加入操作:
使用正确的Chat ID格式
对于频道(Channel),官方API要求的ID格式是-100加上你拿到的原始ID,比如你获取的123456789,正确的ID应为-100123456789。验证与替代方案
- 可以先用Telethon验证是否已成功加入:
with TelegramClient('none', 111111, '12a12b12c12d12e12f12g12h') as client: entity = client.get_entity(123456789) print(entity.stringify()) # 直接用Telethon获取成员数 count = client.get_participants_count(123456789) print(count) - 若Telethon能正常获取信息,再用
-100123456789调用官方API的getChatMembersCount即可返回正确结果。
- 可以先用Telethon验证是否已成功加入:
内容的提问来源于stack exchange,提问作者Alexandre Mateus
相关产品推荐
相关产品推荐

