2013-05-02 23 views
1

我正在嘗試使用twitter向我的Web應用程序提供無縫登錄。爲此,我需要twitter在用戶授權我的應用程序後重定向到特定的URL。指定OAuth1服務的oauth_callback URL(推特)

不想要用戶被迫複製粘貼PIN授權應用程序。

根據guidelines的「實現使用Twitter登錄」,在Step 1中,當獲得request_token時,必須指定oauth_callback。但隨着rauth這樣做會引發一個異常:

Traceback (most recent call last): 
    File "/install_dir/web2py/gluon/restricted.py", line 212, in restricted 
    exec ccode in environment 
    File "/install_dir/web2py/applications/wavilon_portal/controllers/signup.py", line 213, in <module> 
    File "/install_dir/web2py/gluon/globals.py", line 194, in <lambda> 
    self._caller = lambda f: f() 
    File "/install_dir/web2py/applications/wavilon_portal/controllers/signup.py", line 198, in oauth_signup 
    authorized, authorize_url = oauth_service.check_authorization() 
    File "/python_modules/oauth/service.py", line 230, in check_authorization 
    authorize_url = self.get_authorize_url() 
    File "/python_modules/oauth/service.py", line 195, in get_authorize_url 
    return self.get_authorize_url_oauth1() if self.oauthver == OAUTH1_VER else self.get_authorize_url_oauth2() 
    File "/python_modules/oauth/service.py", line 175, in get_authorize_url_oauth1 
    request_token, request_token_secret = self.oauth_service.get_request_token(method="POST", oauth_callback=self.redirect_uri) 
    File "/virtualenvs/python2.7.2/lib/python2.7/site-packages/rauth/service.py", line 212, in get_request_token 
    r = self.get_raw_request_token(method=method, **kwargs) 
    File "/virtualenvs/python2.7.2/lib/python2.7/site-packages/rauth/service.py", line 186, in get_raw_request_token 
    return session.request(method, self.request_token_url, **kwargs) 
    File "/virtualenvs/python2.7.2/lib/python2.7/site-packages/rauth/session.py", line 195, in request 
    return super(OAuth1Session, self).request(method, url, **req_kwargs) 
TypeError: request() got an unexpected keyword argument 'oauth_callback' 

如何重定向URI(oauth_callback)進行speficied爲您好!OAuth1?

回答

2

Rauth與請求:twitter.get_request_token(..., params={'oauth_callback': 'http://example.com/callback'})保持相同的API。

相關問題