Python TwitterOAuth回调覆盖失败

Python TwitterOAuth回调覆盖失败,python,twitter,oauth,twitter-oauth,Python,Twitter,Oauth,Twitter Oauth,因此,我设置了一个twitter应用程序,以便人们可以在我自己的应用程序中回复推文。我有一个回调URL,当我不尝试覆盖它时,一切似乎都很好。但是,现在我遇到了一个问题,即如何覆盖回调,使应用程序能够在多个子域和服务器上运行,这取决于它处于哪个开发阶段,我希望覆盖回调到当前url 当我覆盖回调,twitter试图将用户发送回该页面时,我会看到一个页面,上面写着“对不起,该页面不存在!” URL看起来像这样 下面是我使用oauth库的Python代码: 用户当前流量 单击授权URL 点击允许访问T

因此,我设置了一个twitter应用程序,以便人们可以在我自己的应用程序中回复推文。我有一个回调URL,当我不尝试覆盖它时,一切似乎都很好。但是,现在我遇到了一个问题,即如何覆盖回调,使应用程序能够在多个子域和服务器上运行,这取决于它处于哪个开发阶段,我希望覆盖回调到当前url

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

URL看起来像这样

下面是我使用oauth库的Python代码:

用户当前流量

单击授权URL

点击允许访问Twitter

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

找不到具有上述示例URL的页面。

一些快捷方式

您的URL已经过时,功能不如正确的URL。使用SSL和api子域:

我不清楚您是在执行基于头的OAuth还是基于查询字符串的OAuth。我建议使用基于头部的OAuth——它可以显著地分离关注点,并使错误发生时更容易发现

确保在将动态oauth\u回调值发送到oauth/request\u令牌步骤时,该值已正确编码。另外,请确保在dev.twitter.com/apps上的应用程序记录上有一个基于占位符HTTP的回调,并提供一些快速的信息

您的URL已经过时,功能不如正确的URL。使用SSL和api子域:

我不清楚您是在执行基于头的OAuth还是基于查询字符串的OAuth。我建议使用基于头部的OAuth——它可以显著地分离关注点,并使错误发生时更容易发现


确保在将动态oauth\u回调值发送到oauth/request\u令牌步骤时,该值已正确编码。另外,请确保在dev.twitter.com/apps上的应用程序记录上有一个基于占位符HTTP的回调,我认为twitter不允许覆盖回调URL。也就是说,你不应该得到404。这是在授权完成后发生的吗?他们允许它与Twitter员工谈论它,但线程过时了。如果您在请求中使用POST,它应该可以工作。我认为Twitter不允许您覆盖回调URL。也就是说,你不应该得到404。这是在授权完成后发生的吗?他们允许它与Twitter员工谈论它,但线程过时了。如果您在请求中使用POST,它应该会起作用。谢谢!你能给我链接一个例子或者提供一个基于头的Oauth的区别吗?谢谢!你能把我和一个例子联系起来,或者提供一个区别基于头的Oauth的例子吗。
    #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))