2011-04-07 89 views
1

我正在創建自己的應用程序來顯示即將到來的朋友的生日。我有權從facebook上獲得這個日期,並且在我的網站上顯示我的所有朋友的出生日期。我唯一的問題是如何顯示ie。前10個即將到來的生日?我使用$ facebook-> api('/ me/friends?limit = 10),但不知道如何對它們進行排序。任何人幫助?我應該嘗試對哪些代碼進行排序?一些Facebook的API代碼或PHP代碼。如果PHP那麼也許你有一些提示如何做到這一點。乾杯!按生日日期排序在Facebook API中我的朋友列表?

+0

按fql中的問題檢查此命令:[CLICK HERE](http://forum.developers.facebook.net/viewtopic.php?id=25354) – 2011-04-14 10:13:59

+0

是不是適用於舊的api ?職位是'回合4年前,所以也許他們是不可靠的。但我有一些想法,如果我有什麼我會分享在這裏通知你。謝謝 – Kamil 2011-04-14 12:27:38

回答

2

我解決問題我自己。非常簡單的解決方案...也許太簡單但完美。這是我的代碼。也許它幫助別人的未來;)

$fql_n = "SELECT uid, name, birthday_date FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND strlen(birthday_date) != 0 ORDER BY birthday_date"; 

    $parame = array(
      'method'  => 'fql.query', 
      'query'  => $fql_n, 
      'callback' => '' 
    ); 
    $fqlResultt = $facebook->api($parame); 
    $ile_dat = 0; 

    $miesiace_slownie = array("01" => "jan", "02" => "feb", "03" => "mar", "04" => "apr", "05" => "may", "06" => "jun", "07" => "jul", "08" => "aug", "09" => "sep", "10" => "oct", "11" => "nov", "12" => "dec"); 
    if($fqlResultt){ 
     foreach($fqlResultt as $ress){ 
      $data = date("m/d"); 
      list($fb_m,$fb_d) = explode("/", $ress['birthday_date']); 
      $fb_date = $fb_m."/".$fb_d; 
      if($data<=$fb_date) { ?> 
       <div class="fb_birthday_fr"> 
        <span class="fb_brt_day"><?php echo $fb_d . ' ' . $miesiace_slownie[$fb_m]; ?></span> 
        <span class="fb_brt_fr"><?php echo $ress['name']; ?></span> 
       </div> 
       <?php 
       $ile_dat++; 
       if($ile_dat == 6) break; 
      } 


     } 
    } 

$ miesiace_slownie是的轉換月份的數據從Facebook成當地語言類型數組。

歡呼聲和許多感謝^愛沙爾馬給予的幫助。啤酒給你;)

+1

+1給我..然後:) – 2011-04-14 20:16:08

+0

@Love Sharma我是stockoverflow中的新成員。這是一個比率?如果是這樣,我給+1;) – Kamil 2011-04-15 07:13:45

+0

離開那個...... :)沒有概率......你沒有足夠的積分來做到這一點......:D – 2011-04-15 09:29:05

3

試試這個,使其工作就像你提到的:

$friends = json_decode($facebook->api('/me/friends?fields=birthday')); 
$friends_birth = array(); 
foreach($friends->data as $value){ 
    if(isset($value->birthday->)){ 
    $dt = split("/",$value->birthday); 
    $friends_birth[$value->id] = mktime(0,0,0,$dt[0],$dt[1], date("y")); 
    } 
} 
asort($friends_birth); 
echo print_r($friends_birth); 

這將在生日的朋友明智的排序...現在你可以使用這些數據進行進一步的邏輯

+0

我嘗試你的代碼。但它顯示錯誤,即「json_decode()期望參數1是字符串」無論是什麼意思(我真的不知道)。當我從我的$ facebook-> api(/ me/friends)中刪除json_decode()並添加到「friends?limi = 5&fields = birthday」時,它會顯示5個隨機的人。我認爲「隨機」,因爲他們的生日不是即將到來的。錯誤在哪裏?非常感謝您的幫助,但我需要更多;)等待您的回覆。歡呼聲「愛沙瑪」 – Kamil 2011-04-07 14:20:28

+0

刪除json_decode後你得到了什麼輸出...你可以發佈它... thanx – 2011-04-07 14:27:01

+0

代碼更新了..請再試一次... :)和什麼輸出給請張貼了。 .. – 2011-04-07 14:40:55