2012-01-06 9 views
0

Facebookのログインステータスを確認するためのコードを書いています。response.authResponse is null

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    var user_id = response.authResponse.userID; 
    var page_id = "app_id"; 
    var fql_query = "SELECT uid FROM page_fan WHERE page_id = "+page_id+"and uid="+user_id; 
    var the_query = FB.Data.query(fql_query); 
    the_query.wait(function(rows) { 
       if (rows.length == 1 && rows[0].uid == user_id) { 
        alert("liked the page"); 
       } 
       else { 
        alert("not liked "); 
       } 
      }); 
    } 
    else if (response.status === 'not_authorized') { 

    } 
    else 
    { 
    alert("not logged in"); 
    } 
}); 

セクション場合、私はif (response.status === 'connected') {}一部で、すなわち最初にresponse.authResponseの値を取得していますが、私は、誰もがそれについてどんな考えを持っているか、else if (response.status === 'not_authorized') {}一部に

response.authResponseヌルを取得しています?

私を助けてください。

答えて

1

を承認していないしているので、あなたが必要となりますユーザーにuser_likes権限であなたのアプリケーションを追加/認証させ、それを読むことができます。だから上のコードでは、2つのelseのいずれかに該当する場合は、FB.login()を呼び出すか、ページのfbログインボタンを表示してください。

ユーザーにアプリケーションの追加/認証を強制したくない場合は、アプリをページタブアプリとして設定してから、signed_request(https://developers.facebook)を取得する必要があります。 com/docs/authentication/signed_request /)をデコードして、ユーザーがあなたのページタブのページを気に入っているかどうかを知るアクセス権をデコードします。

+0

signed_requestは本当にトリックを行いました。ありがとうDMCS – mack

1

authResponseオブジェクトは、あなたが接続していない場合はnullです...あなたが好きを取得するために、グラフを呼び出すことができるようにするに...これは論理的なようだ

+0

私のFBページにアクセスするユーザーには、1つのポップアップが表示され、同様のボタンをクリックしたときにのみポップアップが消えます。これを行ったが、1つのFBユーザーこのページの管理者です。それ以外のユーザーは「not_authorized」のステータスを返します – mack