使用Twitter的oauth_callback的python-oauth2
我正在使用Twython这个库来操作Twitter的API,并用oauth2来处理用户认证。我想让用户通过Twitter登录,然后在完成认证后,把他们重定向到一个动态生成的oauth回调地址。不过,使用这些库直接实现这个功能似乎是不可能的。我的问题是,我的oauth客户端(python-oauth2)不支持回调网址。我觉得这很奇怪,因为这是Twython默认使用的oauth客户端——他们为什么要写代码来支持动态回调,却又把一个不支持回调的客户端放在库里呢?第54行被设置为false,所以我的回调网址从来没有包含在请求令牌的网址中,这在oAuth 1.0a规范中是要求的。
我尝试修改Twython和oauth2,但总是遇到问题。我想知道有没有其他支持oauth回调的python-oauth2替代品,或者有没有其他的Twitter库可以正确处理oauth。
1 个回答
10
找到了答案,在这里
你只需要给Twython传一个叫做callback_url的参数,然后把Twython.py文件中的第205行替换成:
resp, content = client.request(request_token_url, "POST",body=urllib.urlencode({'oauth_callback':my_callback_url}))
注意,如果你希望Twitter能正确处理你的oauth_callback参数,发送的请求必须是POST类型。