1

所以我想做的是为我的机器人创建某种仪表板,我想获得当前的公会角色。当我尝试这样做时,我得到{'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"]

4

1 回答 1

2

HTTP 401 响应始终是授权错误,告诉您您没有提供正确的凭据,或者您的凭据已过期。

您是否从 Discord 获得了客户端令牌?如果是这样,您是否使用了Discord REST API 文档为机器人提供的语法?根据我所看到的,您的行应该类似于:

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 错误,我敢打赌您的凭据无效,这意味着令牌已被撤销。这意味着您可能应该获得一个新令牌。

于 2021-02-25T19:38:13.137 回答