Twitter Oauth回调覆盖失败

2024-04-26 09:16:23 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我设置了一个twitter应用程序,这样人们就可以在我自己的应用程序中回复tweets。我有一个回调URL,当我不尝试覆盖它时,一切似乎都很好。不过,现在我有一个问题,让回叫的覆盖工作,应用程序运行在多个子域和服务器上,这取决于它所处的开发阶段,我想覆盖对当前url的回调。在

当我覆盖回调,twitter试图将用户发送回该页面时,我会看到一个页面,上面写着“对不起,该页面不存在!”在

网址看起来像这样

https://twitter.com/oauth/http%3A//127.0.0.1/authtwitter%3FtwitterCallback?oauth_token=VALUE&oauth_verifier=VALUE

下面是我的Python代码,它使用oauth的这个库:https://github.com/simplegeo/python-oauth2

    #SETUP TWITTER AUTHORIZATION OBJECT
    request_token_url = 'http://twitter.com/oauth/request_token'
    access_token_url = 'http://twitter.com/oauth/access_token'
    authorize_url = 'http://twitter.com/oauth/authenticate'

    consumer = oauth.Consumer(consumer_key, consumer_secret)
    client = oauth.Client(consumer)

    #get request token
    callbackURL = urllib.quote("%s?twitterCallback" % self.request.url)

    resp, content = client.request(request_token_url, "POST", body=urllib.urlencode({'oauth_callback':callbackURL}))
    if resp['status'] != '200':
            raise Exception("Invalid Response %s." %resp['status'])

    request_token = dict(urlparse.parse_qsl(content))

    tmpldict['callbackURL'] = callbackURL
    tmpldict['oauth_token'] = request_token['oauth_token']  
    tmpldict['twitauthurl'] = "%s?oauth_token=%s" % ( authorize_url, request_token['oauth_token'] )                               

    qargs=urlparse_qs(self.request.url,True,False)

    if 'oauth_verifier' in qargs:
            oauth_verifier = qargs['oauth_verifier'][0]
    else:
            oauth_verifier = None

    if oauth_verifier:
            token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret'])
            token.set_verifier(oauth_verifier)

            client = oauth.Client(consumer,token)

            resp, content = client.request(access_token_url, "GET")
            access_token = dict(urlparse.parse_qsl(content))

用户当前流量

单击授权URL

点击允许在Twitter上访问

Twitter显示:将您重定向回应用程序

找不到与上面示例类似的URL的页面。在


Tags: comclienttoken应用程序urlaccessconsumerrequest
1条回答
网友
1楼 · 发布于 2024-04-26 09:16:23

一些快速的事情。。。在

你的网址是旧的和过时的,功能不如正确的网址。使用SSL和api子域:

我不清楚您是在执行基于头的OAuth还是基于querystring的OAuth。我推荐基于头的OAuth,它可以显著地分离关注点,并在错误发生时更容易发现。在

确保将动态oauth_回调值发送到oauth/request_令牌步骤时,它的百分比编码正确。此外,请确保在上的应用程序记录上有一个基于占位符HTTP的回调dev.twitter.com/apps在

相关问题 更多 >