You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用Discord API时请求头Token转字节对象报错求助

问题解决:Discord API请求时Token带换行导致的无效头错误

核心原因

从tokens.txt读取Token时,默认会保留文本末尾的换行符\n——虽然打印时显示为str类型,但实际字符串包含隐藏的换行符,当请求库将其转为字节对象时就会出现b'exampletoken123\n'的情况,Discord API拒绝接受带有多余空白字符的Token。

解决方案

1. 读取Token时去除换行和空白字符

修改读取tokens.txt的代码,用strip()去除字符串前后的空白(包括换行、空格、制表符等):

# 读取单个Token
with open('tokens.txt', 'r') as f:
    token = f.read().strip()  # 彻底去除前后空白

# 读取多个Token(每行一个)
with open('tokens.txt', 'r') as f:
    tokens = [line.strip() for line in f if line.strip()]  # 过滤空行并去换行

2. 确保请求头格式正确

Discord API的Authorization头需要匹配Token类型:

  • 机器人Token:格式为Bot {token}
  • 用户Token:格式为Bearer {token}

示例请求代码:

import requests

headers = {
    'Authorization': f'Bot {token}',  # 替换为对应格式
    'Content-Type': 'application/json'
}

# 测试请求(获取当前用户信息)
response = requests.get('https://discord.com/api/v10/users/@me', headers=headers)
print(response.status_code)
print(response.json())

3. 避免手动转换字节对象

如果使用requests库,直接传入字符串类型的头值即可,库会自动处理编码,不要手动将头值转为字节对象。

内容的提问来源于stack exchange,提问作者Heisenberg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:10:10