Discord invite joiner代码故障修复及自动拉取频道邀请链接咨询
重要提示:使用自动化工具操作Discord个人账号(自机器人/Self-bot)违反Discord官方服务条款,可能导致账号被永久封禁,以下内容仅作技术交流使用,请勿用于违规场景。
现有代码故障修复
现有代码无法正常运行的核心修复点如下:
- 接口版本升级:Discord早已废弃v6版本API,当前稳定版为v10,需要将接口地址替换为
https://discord.com/api/v10/invites/ - 邀请码解析逻辑优化:原代码硬编码截取字符串
link[19:]兼容性极差,遇到discord.com/invite/xxx、带查询参数的邀请链接时会直接提取错误,应该改用正则提取邀请码,适配所有合法邀请链接格式。 - 请求头补全:Discord接口会校验请求头合法性,除了Authorization外,必须补充
Content-Type: application/json和标准User-Agent,否则会直接返回403拒绝请求。 - 错误处理补充:原代码未校验请求返回结果,无法判断是否加入成功,需要添加状态码判断逻辑,处理token无效、邀请码过期、权限不足等常见异常。
修复后的参考代码:
import requests import re # 匹配所有格式邀请链接的正则,提取核心邀请码 invite_regex = r"(?:discord(?:\.gg|app\.com/invite)/)([a-zA-Z0-9]+)" link = input('Discord Invite Link: ') match = re.search(invite_regex, link) if not match: print("无效的邀请链接") exit() invite_code = match.group(1) apilink = f"https://discord.com/api/v10/invites/{invite_code}" token = "替换为你的Discord Token" headers = { "Authorization": token, "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36" } res = requests.post(apilink, headers=headers) if res.status_code == 200: print("加入服务器成功") elif res.status_code == 401: print("Token无效,请检查") elif res.status_code == 404: print("邀请码已过期或无效") elif res.status_code == 403: print("请求被拒绝,可能账号已被限制") else: print(f"请求失败,状态码:{res.status_code},返回内容:{res.text}")
自动提取频道邀请链接实现方案
要实现无需手动输入邀请链接,自动从已加入的Discord频道提取邀请链接,可以按照以下逻辑开发:
- 第一步:调用用户服务器列表接口
GET https://discord.com/api/v10/users/@me/guilds,获取当前账号已加入的所有服务器ID列表 - 第二步:遍历每个服务器ID,调用服务器邀请列表接口
GET https://discord.com/api/v10/guilds/{服务器ID}/invites,如果账号在该服务器拥有「管理邀请」或「管理服务器」权限,即可拉取到该服务器下所有有效的公开邀请链接 - 第三步:过滤掉过期、使用次数耗尽的无效邀请,就能得到可用的邀请码列表,直接传给加入接口即可实现无需手动输入的自动加入逻辑
注意:如果没有对应服务器的管理权限,无法拉取该服务器的邀请列表,只能拉取你有权限管理的服务器的邀请。
内容的提问来源于stack exchange,提问作者tuaziadel1988
相关产品推荐
相关产品推荐

