You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用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

火山引擎 最新活动