これはおそらく非常にばかげた質問ですが、私はこれを何時間も見つめていて、何が間違っているのかわかりません。
Python を使用して Facebook API で認証しようとしていますが、ユーザー アクセス トークンのリクエストで問題が発生しています。コードを受け取ったら、次のように https://graph.facebook.com/oauth/access_token にリクエストを送信します。
conn = httplib.HTTPSConnection("graph.facebook.com")
params = urllib.urlencode({'redirect_uri':request.build_absolute_uri(reverse('some_app.views.home')),
'client_id':apis.Facebook.app_id,
'client_secret':apis.Facebook.app_secret,
'code':code})
conn.request("GET", "/oauth/access_token", params)
response = conn.getresponse()
response_body = response.read()
それに応じて、私は受け取ります
{"エラー":{"メッセージ":"redirect_uri パラメーターがありません。","タイプ":"OAuthException","コード":191}}
何がうまくいかないのでしょうか?渡された redirect_uri がアプリ ドメインにあることは既に確認しましたが、これがローカルでホストされていて、そのドメインがホスト ファイルによって localhost にリダイレクトされただけであることが問題になる可能性がありますか?
ご協力いただきありがとうございます!
編集:
requests ライブラリを使用してこれを機能させました:
params = {'redirect_uri':request.build_absolute_uri(reverse('profiles.views.fb_signup')),
'client_id':apis.Facebook.app_id,
'client_secret':apis.Facebook.app_secret,
'code':code}
r = requests.get("https://graph.facebook.com/oauth/access_token",params=params)
ただし、ライブラリがネイティブにサポートされている必要がある場合は、ライブラリに依存することを好みます。多分これは求めすぎです...