Twitterアプリをセットアップして、自分のアプリ内のツイートに返信できるようにしました。私はコールバックURLを持っています。私が試してそれを上書きしないときは、すべてうまくいくようです。しかし、私は現在のURLへのコールバックをオーバーライドしたいと思っています。これは、アプリケーションが複数のサブドメインとサーバー上で動作するようにコールバックのオーバーライドを取得する問題です。Twitter Oauthコールバックオーバーライドが失敗する
私がコールバックをオーバーライドして、Twitterユーザーがそのページに戻ってきたら、「申し訳ありません、そのページは存在しません!」というメッセージが表示されます。
とURLこの
とここに私の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
上記の例のようなURLでページを検索することはできませんバックアプリケーションへリダイレクトしています:3210
は、Twitterの
Twitterの表示上のアクセスを許可ヒット。
TwitterでコールバックURLを上書きすることはできません。つまり、あなたは404を取得すべきではありません。これは許可が行われた後に起こっていますか? – muffinista
彼らはそれについてhttp://milindshakya.tumblr.com/post/4208580364/overriding-twitters-default-callback-url-using-oauthがTwitterの従業員と話したが、スレッドは古くなった。リクエストでPOSTを使用するとうまくいくはずです。 – BillPull