基于Python的Discord服务器加入工具问题求助:显示加入但未成功
问题分析与修复方案
核心问题梳理
错误的成功判定逻辑
你的代码仅在请求抛出异常时才提示错误,无论API实际返回成功还是失败,都会打印"Joined, I think"。Discord API通过状态码和响应内容返回请求结果,必须校验这些信息才能确认是否真的加入成功。Authorization头格式错误
Discord API的Authorization头不需要添加Bearer前缀,直接使用token字符串即可。错误的格式会导致API拒绝请求。不安全的SSL验证关闭
verify=False禁用了SSL证书验证,这不仅存在安全风险,还可能在部分网络环境下导致请求失败,建议移除该参数。无意义的无限循环
外层的while True会让代码反复读取tokens.txt并重复处理所有token,造成不必要的重复请求,除非有特殊需求,否则应移除该循环。
修正后的代码
import requests code = "y7EmKSE8ZX" def join(file_path): with open(file_path, "r") as f: lines = f.readlines() for line in lines: token = line.strip() if not token: continue # 跳过空行 headers = { 'Authorization': token, # 修正Authorization头格式 'Content-Type': 'application/json', } url = f"https://discord.com/api/v9/invites/{code}" try: response = requests.post(url, headers=headers, json={}) # 根据Discord API规范,200/201状态码表示请求成功 if response.status_code in (200, 201): print(f"Token {token[:5]}... 成功加入服务器") else: # 解析API返回的错误信息,便于排查问题 error_detail = response.json().get('message', '未知错误') print(f"Token {token[:5]}... 加入失败,状态码: {response.status_code}, 错误信息: {error_detail}") except requests.exceptions.RequestException as e: print(f"Token {token[:5]}... 请求异常: {e}") join("tokens.txt")
额外说明
- 修正后的代码会根据API响应状态码和内容准确判断是否加入成功,失败时会输出具体错误信息(比如token无效、邀请码过期、账号已在服务器中等),方便快速定位问题。
- 移除了无限循环,避免重复处理同一批token。
- 修复了Authorization头格式,确保API能正确识别身份凭证。
内容的提问来源于stack exchange,提问作者Lordoxezz
相关产品推荐
相关产品推荐

