このチュートリアルを使用して、python、djangoでfb apiのアクセストークンを長期間取得しようとしています: http://developers.facebook.com/docs/howtos/login/server-side-login/
これは、開発サーバーでローカルに機能していますが、本番環境では機能していません!
最初のステップでコードを取得しましたが、次のステップで問題があります:ステップ 6. コードをアクセス トークンに交換する
アクセストークンを取得するための私のコードは次のとおりです。
params = {
'client_id': app_id,
'client_secret': app_secret,
'code': code,
'redirect_uri': "http://" + Site.objects.get_current().domain + reverse("login_fb")
}
url = "https://graph.facebook.com/oauth/access_token?" + urllib.urlencode(params)
headers = {'User-Agent': 'Mozilla/5.0'}
request = urllib2.Request(url, headers=headers, data=urllib.urlencode(params))
response = urllib2.urlopen(request)
リクエストを呼び出すと、エラーが発生しました: HTTP エラー 400: 悪いリクエスト
開発サーバーで動作していました。return redirect(url)
代わりに使用するurllib2.urlopen(url)
と、有効なアクセス トークンにリダイレクトされます。urlopenで機能しないのはなぜですか?
更新 これは fb api の応答です。
Invalid redirect_uri: The specified URL is not allowed by the configuration of the application