Tho*_*ski 5 python api oauth discord
简单的问题:我正在尝试使用 Discord API 来备份服务器(或公会,如果您使用官方术语)上的所有消息。
所以我实现了 OAuth 没有任何问题,我有我的访问令牌,我可以查询一些端点(我尝试过/users/@me,/users/@me/guilds)。不过,大多数都不起作用。例如,如果我查询/users/@me/channels(应该是 DM),我会从 API 收到 401 未经授权的响应。如果我从中收集公会 ID /users/@me/guilds,然后尝试使用 列出其中的频道,情况也是一样的/guilds/guild.id/channels。
真正奇怪的是,我确实拥有所需的所有范围(我认为是这样,我没有采用 RPC 范围,因为我认为它不是我想做的事情所必需的),而且我自己无法弄清楚...同样奇怪的是,在 OAuth 授权屏幕上,我有这两件事:
它有点反驳自己......:(
您有什么想法想分享吗?
谢谢!
注意:我正在使用 Python,但我认为它与这里无关,因为某些端点确实可以使用我拥有的标头和令牌...
这是我的“验证码”:
baseUrl = "https://discordapp.com/api"
def authorize():
scopes = [
"guilds",
"email",
"identify",
"messages.read",
"guilds.join",
"gdm.join",
"connections"
]
urlAuthorize = "{}/oauth2/authorize?client_id={}&scope={}&response_type=code".format(baseUrl, clientid, ('+'.join(scopes)))
pyperclip.copy(urlAuthorize)
code = input("Code: ")
return code
def getAccessToken(code):
url = "{}/oauth2/token".format(baseUrl)
params = {
"client_id" : clientid,
"client_secret" : clientsecret,
"redirect_uri" : "http://localhost",
"grant_type":"authorization_code",
"code" : code,
}
req = requests.post(url, params = params)
return json.loads(req.text)
Run Code Online (Sandbox Code Playgroud)
以及与API请求相关的代码:
def getHeaders():
return {
"Authorization" : "{} {}".format("Bearer", config["accessToken"]),
# "user-agent" : "DiscordBackup/0.0.1"
}
def getRequest(endpoint, asJson = True, additional = None):
url = "{}/{}".format(baseUrl, endpoint)
req = requests.get(url, headers = getHeaders())
print()
print(getHeaders())
print(url)
print(req.text)
if asJson:
return json.loads(req.text)
else:
return req.text
def getMe(): # this works
endpoint = "users/@me"
return getRequest(endpoint)
def getMyDMs(): # this gives me a code 401 Unauthorized
endpoint = "/users/@me/channels"
return getRequest(endpoint)
Run Code Online (Sandbox Code Playgroud)
小智 4
我是在遇到这个问题的时候看到这个帖子的,说白了就是没有办法解决。
该messages.read权限针对本地RPC服务器;https://discordapp.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes
但是,本地 RPC 服务器处于内测阶段,您必须注册/获得接受才能使用它。
我想创建一个 DM 导出器,但现在看来不太可能。
| 归档时间: |
|
| 查看次数: |
8263 次 |
| 最近记录: |