使用Telethon加入Telegram群组遇InviteHashInvalidError错误求助
解决Telethon中ImportChatInviteRequest触发InviteHashInvalidError的问题
这个错误说白了就是Telegram不认你传入的邀请哈希,我帮你梳理几个最可能的原因和对应的解决办法:
1. 你传入的哈希格式完全不对
Telegram的群组邀请哈希是从邀请链接里提取的特定部分,不是整个链接,也不能带多余字符:
- 旧版邀请链接格式是
t.me/joinchat/xxxxxx,这里的xxxxxx才是要传入的哈希 - 如果你拿到的是新版的
t.me/GroupName/12345这种链接,这不是哈希邀请,不能用ImportChatInviteRequest处理(这点很多人踩坑)
2. 邀请链接已经失效
不管格式对不对,先手动打开邀请链接试试:
- 如果手动都加不进去,要么是链接被群主撤销了,要么是临时邀请过期了,这种情况代码肯定也无能为力,得找群主要新的邀请
3. 用错了API方法(针对新版邀请链接)
如果是t.me/GroupName/XXXX这种基于群组用户名的邀请,别用底层的ImportChatInviteRequest,直接用Telethon提供的高层APIjoin_chat(),它会自动识别邀请类型,省心很多:
from telethon import TelegramClient # 假设你已经完成了client的初始化和登录 try: # 直接传完整邀请链接或者哈希都可以 chat = await client.join_chat('https://t.me/joinchat/grouphash') print(f"成功加入:{chat.title}") except Exception as e: print(f"加入失败:{str(e)}")
如果一定要用底层API,建议先做有效性检查,再执行加入,同时捕获具体错误类型:
from telethon.tl.functions.messages import CheckChatInviteRequest, ImportChatInviteRequest import telethon.errors try: # 先验证哈希是否有效 check_status = await client(CheckChatInviteRequest('grouphash')) # 验证通过再加入 updates = await client(ImportChatInviteRequest('grouphash')) print("成功加入群组") except telethon.errors.rpcerrorlist.InviteHashInvalidError: print("邀请哈希无效,请核对链接提取的哈希是否正确") except telethon.errors.rpcerrorlist.InviteHashExpiredError: print("邀请链接已过期,需要获取新的邀请") except telethon.errors.rpcerrorlist.UserAlreadyParticipantError: print("你已经在这个群组里了") except Exception as e: print(f"其他未知错误:{str(e)}")
最后再提几个小注意点:
- 确保你的客户端是正常登录状态,用持久化会话(不要每次都扫码临时登录)
- 不要频繁调用加入接口,Telegram会限制频繁操作的账号
- 部分私有群组需要群主审核,即使邀请正确也会触发审核相关的错误,这时候只能等群主通过
内容的提问来源于stack exchange,提问作者Cat Licker




