2012-01-10 15 views
1

私は4つの異なるカテゴリで投票できるようにするアプリを構築しようとしています ユーザーIDを保存して、誰かが一度だけ投票できるようにしたいと思います。facebookページのタブ内のユーザーIDを取得

ユーザーがタブとやりとりしたときにユーザーIDを取得できることがわかりました。私はfb_sig_profile_userについて読んだことがありますが、これはどのように使用するのか分かりません。

私はfacebook devのページでこれについて少しお読みになりましたが、あまり明確ではありません。

私が正しく理解すれば、ユーザーが何かをクリックしてからfacebookタブがajax呼び出しを行った後にユーザーIDを取得できます。 そのとき、あなたはユーザーIDを取得することができますが、私はどのようにわかりません。

答えて

1

FacebookユーザーのIDを必要とする多くのFacebookページタブがあり、1人のユーザーに対して重複したエントリが作成されないようにしています。あなたがしなければならないことは、Facebookアプリをステップアップすることです。ページタブアプリとして設定し、Facebookページに配置します。それがあると、ユーザーのアクセス権を求めるFacebookログインポップアップを行います。その後、SDKを使用して現在のユーザーにIDを取得させることができます(またはfacebookがタブアプリケーションに投稿するsigned_requestフォームの投稿パラメータをデコードできます)。スタンドアロンのウェブサイトやiFramedキャンバスアプリでも、ページ以外のタブのアプリでも同様のことを行うことができます。

+0

感謝を得るためにこれを使用するが、私は本当に人々がプライベート情報の一部の後にそのイムを考えたいいけません。 私は余分なアクセス許可のためにaksすることなく、ユーザーIDを取得することはできません方法はありますか? –

+2

いいえ、それは唯一の方法です。加えて、あなたは、あなたがデフォルトよりも多くのアクセス権を要求している場合を除き、公開情報へのアクセスを許可するだけです。また、ユーザーがダイアログを受け入れない可能性がある場合は、代わりに[拡張認証]ダイアログボックスを使用してみてください。 – DMCS

0

Facebookは、あなたがas described in the docsをデコードした後、signed_requestパラメータを使用してアプリにPOSTリクエストを行います、このようなユーザーの国などの情報のハッシュを生成します。

ユーザーがあなたのアプリを承認した場合、その同じパラメータには、のユーザーのFacebook IDなどの追加情報が含まれます。

+0

クイック返信ありがとうが、私は本当に人々が個人情報のいくつかの後にそのイムを考えることを望んでいない。 私は余分なアクセス許可のためにaksすることなく、ユーザーIDを取得することはできません方法はありますか? –

+0

@DMCSはすべて、http://www.visitorjs.com/ [paid]のような他のユーザー追跡メカニズムを使用したり、独自のCookieソリューションを展開したりすることができます。 –

0

//迅速な応答をFacebookのユーザーIDに

<?php session_start();?>  
    <?php require 'src/facebook.php'; 
     $app_id = "your_app_id"; 
     $app_secret = "your_secret_key"; 
     $facebook = new Facebook(array(
     'appId' => $app_id, 
     'secret' => $app_secret 

     )); 

      $canvas_page = "https://www.facebook.com/page_name/app_appid"; //this is you facebook app url 

      $auth_url = "http://www.facebook.com/dialog/oauth?client_id=" 
        . $app_id . "&redirect_uri=" . urlencode($canvas_page); 

      $signed_request = $_REQUEST["signed_request"]; 

      list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

      $data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true); 

      if (empty($data["user_id"])) { 
        echo("<script> top.location.href='" . $auth_url . "'</script>"); 
      } else { 
        echo $data["user_id"]; 
        $_SESSION['fbuser']=$data["user_id"]; 
      } 
?> 
関連する問題