命令行oauth2授权获得用户的许可

时间:2015-04-21 17:43:16

标签: python oauth oauth-2.0 url-redirection

我想编写一个程序来从http://www.thingiverse.com/

下载内容

我很难进行身份验证。因为它是一个命令行工具。用户必须单击浏览器中的允许按钮才能继续(获取重定向URL并获取代码)。如何在python中做到这一点?

如果我这样做:

import requests

#get access code
client_id = "xxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxx"
redirect_uri = "http://wang-nima.github.io"

payload = {'client_id': client_id, 'redirect_uri': redirect_uri}
r = requests.get("https://www.thingiverse.com/login/oauth/authorize", params=payload)
print r.url

打印的网址是您应该按下允许按钮的网址。不是重定向网址。如何获取重定向url ??

提前致谢

1 个答案:

答案 0 :(得分:0)

您无法以自动方式获得用户的同意,因为这会破坏OAuth的目的,并且会违反规范。您可以做的是从您的python环境中生成一个浏览器,让用户在浏览器中登录并同意并让他将code复制/粘贴回您的python脚本。