2012-02-16 2 views
1

私はasp.net Webサイトをfacebookアプリケーションとして開発しています。FB.getLoginStatusを呼び出さずにfacebookユーザーIDを取得し、公開情報のためにユーザーにアクセス権を与える方法

私は "Facebook Like Gate"をプロンプトにしようとしています。アプリケーションを見る前に私のページのように。例えば、https://www.facebook.com/AvonProductsInc?sk=app_188308831197082

問題は、上記のアプリケーションは私の基本情報を取得する権限を与えないが、次のコードを使用してuser_idを取得し、彼が既に持っていることを確認する前に、 :

function checkFBlike() { 

    //FB.login 
    FB.getLoginStatus(function (response) { 

     var r = response; 

     if (response.status == "connected") { 

      var user_id = response.authResponse.userID; 
      var page_id = "341342102543433"; //341342102543433   168619489865949 
      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) { 
        //jQuery("#container_like").show(); 
        fbLikeGateHide(); 
        //here you could also do some ajax and get the content for a "liker" instead of simply showing a hidden div in the page. 

       } 
       else { 

        //and here you could get the content for a non liker in ajax... 
       } 
      }); 


     } else if (response.status === 'not_authorized') { 
      // the user is logged in to Facebook, but not connected to the app 
      showFbLogin(); //display Facebook Login button 

     } 
     else { 
      // user is not logged in 
     } 
    }); 


} 

function showFbLogin(){ 
    FB.login(function(response) { 
     var r=response; 
    }); 
} 

答えて

1

あなたはあなたがあなたのページはキャンバスアプリの場合にFacebookがないHTTPのPOSTから来るsigned_requestパラメータをご覧くださいエイボンアプリ(特にページタブのアプリケーション)のようになるだろうしているので。あなたは本当にクライアント側のチェックを行う必要はありません。 signed_requestの詳細については

は、以下を参照してください。responceためhttp://developers.facebook.com/docs/authentication/signed_request/

+0

感謝を。しかし、私は私のweb.configに次のコードを追加した後: –

+0

最後に私の問題を解決しました - 質問は私のWebサイトでリダイレクトしていました。 –

関連する問題