【问题标题】:Discord API 401 Unauthorized Error when trying to get guild roles尝试获取公会角色时出现 Discord API 401 未经授权的错误
【发布时间】:2021-05-28 04:52:15
【问题描述】:

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

【问题讨论】:

    标签: python python-requests discord flask-dance


    【解决方案1】:

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

    【讨论】:

    • 我在哪里可以获得客户端令牌?我认为那是我的问题,因为我似乎找不到它@ZackWolf
    • @Mr.Beanos.- 你需要向 Discord 注册一个应用程序。这样做的说明在我链接到的文档中,但这里是应用程序页面的链接:discord.com/developers/applications
    • 我没有使用机器人,所以我在这个中使用了“Bearer Token”discord.com/developers/docs/reference#authentication,它仍然不起作用@ZachWolf
    猜你喜欢
    • 2019-02-01
    • 2022-08-20
    • 2017-09-27
    • 2011-09-15
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    相关资源
    最近更新 更多