私はFacebook SDK for JavaScriptをPython Flask Webアプリケーションに統合しています。ログインしたユーザーのFacebook idサーバー側にアクセスする必要があります。Pythonフラスコ:FB API呼び出しからのバックエンドへの応答
@app.route('/process', methods=['GET', 'POST'])
def process():
session['FB_id'] = request.form['FB_id']
print("User's Facebook id now accessible across all routes server-side!")
return redirect(url_for('index'))
:
<script>
function sendToBackEnd(){
FB.getLoginStatus(function(response){
if (response.status == 'connected'){
$form = $('<form>', {'action': '/process_form', 'method': 'POST'}).appendTO('body');
FB.api('/me', function(response){
$('<input>', {'class': 'hidden', 'name': 'FB_id', 'value': response.id}).appendTo($form);
});
}
});
}
</script>
<div class="fb-login-button" onlogin="sendToBackEnd"></div>
そしてフラスコsession
オブジェクトにそのIDを記憶:
私の現在のアプローチは、ユーザがログインをするときのIDを格納する隠し入力を含むフォームを構築し、それを提出することです
ここではより良いアプローチがありますか、またはこのデータをクライアントからサーバー側に渡す唯一の方法を隠しフォームに送信していますか?
FB.init()メソッドには、cookie
という名前のパラメータがあります。これは、「セッション用のCookieが作成されているかどうかを確認します。有効にすると、サーバー側のコードでアクセスできます"私はかなりフラスコのセッションオブジェクトはクライアント側(正当な理由)を変更することはできませんが、おそらくこの別のクッキーは、私のpythonコードでサーバー側を評価することができますか?
これは役に立ちましたかもしれない[Facebook SDK for Python library](https://facebook-sdk.readthedocs.io/en/latest/index.html)です。 –