6

Facebookコネクトを利用したWebサイトを構築しています。私は、javascript SDK を使用してクライアント側でユーザーを認証し、ユーザーがログインするたびにサーバーで AJAX メソッドを呼び出して、ユーザーがアプリに認識されているかどうか、およびユーザーが自分の FBID をデータベースに保存するのが初めてかどうかを確認しています。それらを新しいユーザーとして登録します。

私の質問は、Facebook から Javascript SDK に返されたアクセス トークンをサーバー側で (たとえば PHP SDK で) 使用できますか? アクセス トークン文字列を AJAX 呼び出しを介してサーバーに送信し、それをデータベースに保存して (有効期間がわかるようにタイムスタンプと共に)、それを使用してグラフ API サーバー側を呼び出すことはできますか? これは論理的なことですか?

4

2 に答える 2

3

Yes, this should work. Look at this question: How to properly handle session and access token with Facebook PHP SDK 3.0?

This is a workaround for the old JS and new PHP SDK. In my app I send the access token generated by the JS SDK via a form to my PHP. I have no doubts that this also works by sending the access token via ajax!

于 2011-07-22T15:18:04.740 に答える
3

Jquery の使用:

//Set an error message
var oops = ("Put your something went wrong message here.");
//Function to post the data to the server
    function save(uid, accessToken){
        $.post("../foo/bar", { uid: uid, access_token: accessToken, etc, etc }, function(data){
            alert("Successfully connected to Facebook.");
            location.reload();
        }, "text");
    }
    function handler(x){
        if (x.authResponse){
            var token = x.authResponse.accessToken;
            var uid   = x.authResponse.id;
            FB.api("/me/accounts", {access_token: token},
            function(response){
                if(response.data.length == 0) {
//Regular facebook user with one account (profile)
                    save(uid, token);
                }else{
//Handle multiple accounts (if you want access to pages, groups, etc)
                }
            });
        }else{
            alert(oops);
        }
    }
    FB.login(handler, {scope: 'The list of permissions you are requesting goes here'});

改善の提案は常に高く評価されます。

于 2011-08-02T14:45:50.740 に答える