2012-05-11 13 views
0

フェイスブックAPIから友人の誕生日を引き出そうと努力しています。私は友人の身分を引き出すことができましたが、uid要求を何か他のもの(つまり名前、性別、誕生日など)は、コードを壊す。どんな洞察も大きな助けになるでしょう。ありがとうフェイスブックAPIで友人の誕生日をプル

<div id="fb_login"> 

      <div id="fb-root"></div> 
      <script> 
      window.fbAsyncInit = function() { 
       FB.init({ 
       appId  : 'APP_ID', 
       status  : true, 
       cookie  : true, 
       xfbml  : true, 
       oauth  : true, 
       }); 
      }; 
      (function(d){ 
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;} 
       js = d.createElement('script'); js.id = id; js.async = true; 
       js.src = "//connect.facebook.net/en_US/all.js"; 
       d.getElementsByTagName('head')[0].appendChild(js); 
      }(document)); 
      </script> 
     <div class="fb-login-button" scope="user_birthday,friends_birthday">Login with Facebook</div> 



     <div id="bday_display"> 
     <?php 
       $app_id = 'APP_ID'; 
       $app_secret = 'APP_SECERT'; 
       $my_url = 'MY_URL'; 


       $code = $_REQUEST["code"]; 



       //auth user 
       if(empty($code)) { 
        $dialog_url = 'https://www.facebook.com/dialog/oauth?client_id=' 
        . $app_id . '&redirect_uri=' . urlencode($my_url) ; 
        echo("<script>top.location.href='" . $dialog_url . "'</script>"); 
       } 

       //get user access_token 
       $token_url = 'https://graph.facebook.com/oauth/access_token?client_id=' 
        . $app_id . '&redirect_uri=' . urlencode($my_url) 
        . '&client_secret=' . $app_secret 
        . '&code=' . $code; 
       $access_token = file_get_contents($token_url); 

       // Run fql query 
       $fql_query_url = 'https://graph.facebook.com/' 
        . '/fql?q=SELECT+uid2+FROM+friend+WHERE+uid1=me()' 
        . '&' . $access_token; 
       $fql_query_result = file_get_contents($fql_query_url); 
       $fql_query_obj = json_decode($fql_query_result, true); 



       //display results of fql query 
       echo '<pre>'; 
       print_r("query results:"); 
       print_r($fql_query_obj); 
       echo '</pre>'; 





       ?> 

    </div> 

答えて

0

ここにコードがあります。すべてのあなたの助けをありがとうcpilko。私はあなたの助けを借りてそれを終わらせることができなかった。

 try{ 
      $fql = "SELECT name, birthday_date FROM user WHERE uid IN (SELECT uid2   FROM friend WHERE uid1=me())"; 
      $param = array(
       'method' => 'fql.query', 
       'query'  => $fql, 
       'callback' => '' 
      ); 
      $fqlResult = $facebook->api($param); 
     } 
     catch(Exception $o){ 
      d($o); 
    } 
} 
0

このfql文を試してみてください。誰もが自分の誕生日のフィールドに住んでいるわけではありません。

SELECT name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1=me()) 

あなたは目に見えるの誕生日を持っていない友人をフィルタリングするには、上記FQLの終わりにAND strlen(birthday_date) > 0を追加することができます。

+0

助けてくれてありがとうございました。これは非常にイライラです。私は、ユーザーのテーブルからこの要求をする必要がありますが、正しい?私は自分のデータをユーザーとして引き出すことができるようですが、私は友達の情報を取得しようとするとすぐに何もしません。私は私の許可が私のアプリであり、すべてが設定されていることを確認しました。 – DevUps

+0

[Graph API Explorer](https://developers.facebook.com/tools/explorer)のクエリをアプリとして使用して何かが返されているかどうかを確認しましたか?また、 'birthday_date'情報は' user'テーブルにのみあります。 – cpilko

+0

エクスプローラでクエリを試したところ、実際のサイトでは何も返されませんでした。 – DevUps

関連する問題