【发布时间】:2021-03-26 05:12:14
【问题描述】:
用户将按下登录按钮,该按钮会将他们定向到授权网站osu auth
然后将被重定向回带有代码的网站
code = request.query_string
name_verify = str(code).split('code=')[1]
#re.search("(?!\w+=)\w+", str(code)) #getting the code
print(name_verify)
response = requests.post("https://osu.ppy.sh/oauth/token", data = { 'client_id': xxxx, 'client_secret': "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 'redirect_uri': "https://osu-api-crap.minecreeper0913.repl.co", 'scope':'public', 'code': name_verify, 'grant_type':'authorization_code'}, headers={'Accept': 'application/json', 'Content-Type': 'application/json'})
print(response.text)
我被告知这是正确的方法,但它总是导致“授权服务器不支持授权授予类型”
【问题讨论】:
-
你可以试试在 post 方法中用 "json =" 而不是 "body=" 吗?
-
好吧,我试过了,它给了我 {"error":"client authentication failed"} 所以它做了一些事情,你认为你可以向我解释为什么 json= 比 data=/body 更好=?
-
"json=" 发送一个 json 可序列化的 python 对象,而 "data=" 发送一个包含 json doc 的字符串实例。您应该在发送表单数据内容类型时使用数据,而为其他内容类型发送 json。
-
哦,好的,我明白了。您还认为您知道为什么会出现该错误或已修复吗?
-
您发送的正文参数之一似乎是错误的。我建议先浏览 osu 文档并检查何时抛出此错误
标签: python api flask python-requests