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

使用Discord API与Python Requests分配角色遇401错误求助

解决Discord API分配角色返回401未授权的问题

核心原因及修复步骤

  • 缺少有效认证信息:Discord API所有请求都需要携带合法的认证令牌,401错误直接说明请求未通过身份验证。
    • 需在请求头中添加机器人令牌(推荐使用机器人令牌,权限控制更清晰),格式为Authorization: Bot YOUR_BOT_TOKEN
    • 确保机器人已加入目标服务器,且拥有Manage Roles权限
  • 多余的请求体:给用户添加角色的PUT端点不需要任何请求体,你当前发送的data是无效的,会干扰请求处理。

修正后的代码

import requests

def give_role(guild_id, user_id, role_id):
    url = f"https://discord.com/api/guilds/{guild_id}/members/{user_id}/roles/{role_id}"
    # 替换为你的机器人令牌
    headers = {
        "Authorization": "Bot YOUR_BOT_TOKEN",
        "Content-Type": "application/json"
    }
    # 该端点无需请求体,直接发送PUT请求
    response = requests.put(url, headers=headers)
    print(response)
    # 可以添加状态码判断,更直观反馈结果
    if response.status_code == 204:
        print("角色分配成功")
    elif response.status_code == 403:
        print("权限不足:请检查机器人角色位置是否高于目标角色,或是否拥有Manage Roles权限")
    else:
        print(f"错误详情: {response.json()}")

额外检查项

  • 机器人的角色在服务器角色列表中的位置,必须高于要分配的角色,否则会返回403禁止访问
  • 确保令牌完整无空格、未过期或被撤销

内容的提问来源于stack exchange,提问作者Alexander Shoja Assadi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:12:05