所以我要做的是为我的机器人创建某种仪表板,我想获得当前的公会角色。当我尝试这样做时,我得到 {'message': '401: Unauthorized', 'code': 0}
作为响应。我尝试了所有方法并查看了多个问题以及 github 上的问题
json.loads(discord_oauth.discord.get(f"/api/guilds/{server}/roles", headers={"Authorization": "client-secret-here"}).content)
如果你问我为什么不把 Bearer
放在我的客户端机密前面,那是因为我使用的库已经把它放在前面了。所以标题会像这样返回:{"Authorization": "Bearer client-secret-here"
(我也试过,但也没有用)
我也试过用 requests.get() 来做,但也没有用。我总是得到 {'message': '401: Unauthorized', 'code': 0}
作为回应。我该如何解决这个问题?
(此代码仅在我尝试获取公会频道和公会角色时不起作用。它适用于公会和用户信息)
我的范围是:["guilds", "identify"]
答案 0 :(得分:2)
HTTP 401 响应始终是授权错误,告诉您您没有提供正确的凭据,或者您的凭据已过期。
您是否从 Discord 获得了客户端令牌?如果是这样,您是否使用 Discord REST API documentation 为机器人提供的语法?根据我所看到的,您的行应该类似于:
token = 'MTk4NjIyNDgzNDcxOTI1MjQ4.Cl2FMQ.ZnCjm1XVW7vRze4b7Cq4se7kKWs'
headers = {"Authorization": f"Bot {token}"}
result = discord_oauth.discord.get(f"/api/guilds/{server}/roles", headers=headers).content
data = json.loads(result)
如果您按照这些说明操作,但仍然收到 401 错误,我敢打赌您的凭据无效,这意味着令牌已被撤销。这意味着您可能应该获得一个新令牌。