2010-11-22 14 views
0

Facebook APIを使用して、ユーザーがログインできるページがあります。しかしもちろん、問題はユーザーがページを変更し、ログインを再認可する必要がある場合です。今の事は、私は、ユーザーを認証したときに、私は最初の外出先でのセッションを設定してあるFacebook API Conundrum

header("location:" . $_SESSION['fb_session']['logoutUrl']); 
unset($_SESSION['fb_session']); 

だから私のメインページに、私は

$facebook = new Facebook(array(
    'appId' => 'xxx', 
    'secret' => 'xxxxxx', 
    'cookie' => false, 
)); 

$session = $facebook->getSession(); 

if ($session) { 
    try { 
     $uid = $facebook->getUser(); 
     $me = $facebook->api('/me'); 

     $_SESSION['fb_session'] = $me; 
     $_SESSION['fb_session']['loginUrl'] = $facebook->getLoginUrl(); 
     $_SESSION['fb_session']['logoutUrl'] = $facebook->getLogoutUrl(); 
     $_SESSION['fb_session'] = array_merge($_SESSION['fb_session'], $session); 
    } 

    catch (FacebookApiException $e) { 
     error_log($e); 
     unset($_SESSION['fb_session']); 
    } 
} 

if ($_SESSION['fb_session']) { 
    $x = $facebook->api("/{$_SESSION['fb_session']['id']}"); 
    print "<img src='https://graph.facebook.com/{$x['id']}/picture' />";       
    print "<a href='facebook_logout.php'></a>"; 
} 
else { 

    $loginUrl = $facebook->getLoginUrl(); 
    print "<a href='{$facebook->getLoginUrl()}'>Login to Post Comment</a>"; 
} 

そして、私のfacebook_logout.phpを持っては次のようになります。しかし、彼のプロフィールを変更するとどうなりますか?彼のAPIで私のウェブサイトを許可しない。

私は自分のプロフィールでこれをテストしました。私はそれを許可するとうまく動作します。しかし、私は私のプライバシー設定からアプリを削除すると、私はまだ私の絵を見ると名前などの下

fb_session私の有効期限が戻って行くので、私はないUIDを再認証方法

[id] => id 
[name] => Shahmir Javaid 
[first_name] => Shahmir 
[last_name] => Javaid 
[link] => http://www.facebook.com/shahmirj 
[about] => I was Born a n00b, I am still a n00b and il never be not a n00b. 
[gender] => male 
[locale] => en_GB 
[verified] => 1 
[updated_time] => 2010-11-22T15:45:22+0000 
[loginUrl] => https:// 
[logoutUrl] => https:// 
[session_key] => xxx 
[uid] => xxx 
[expires] => 1290448800 
[secret] => xxx 
[access_token] => xxx 
[sig] => xxx 

に出力され、もちろん、ユーザーに再度ログインする必要はありませんか?

答えて

0

graph.facebook.com/USERID/pictureを指しているため、ユーザーがプロフィール画像(プロファイルから使用しているすべての画像)を変更すると、更新された画像が表示されます。アプリケーション設定の詳細タブにあるfacebook deauthorizeコールバックURLを使用すると、ユーザーがアプリケーションを削除したときにアプリケーションに警告することができます。

データを取得する前に認証されていないIDのリストを保存して検索すると、セッションを設定解除してそのIDをデータベースから削除すると、再度ログインURLが表示され、そのユーザーのFacebook接続が削除されますあなたのバックエンド。

+0

すべてのim格納は、uidと名前です。プロフィール画像は '$ x = $ facebook-> api("/{$ _ SESSION ['fb_session'] ['id']} ''; ')から取り出されますが、私の指摘は期限切れです。そして、コールバックURLをdeautorizeについて失われた私の並べ替え –

+0

http://developers.facebook.com/docs/authentication/ - ページの末尾 – Gazler

+0

IDはこれまで変わっていません。 Id値を取得すると、ユーザーが私を削除していないことを前提に '$ x-> api( '/ Id')'を実行するとデータの送信を停止します –