Сортировка по дате рождения мой список друзей в Facebook API? - PullRequest
1 голос
/ 07 апреля 2011

Я создаю свое собственное приложение, чтобы показать предстоящий день рождения друга.У меня есть разрешение на получение этих дат на Facebook, и я показываю всем своим друзьям дату их рождения на моем сайте.Мой единственный вопрос, как отобразить то есть.первые 10 предстоящих дней рождения?я использую $ facebook-> api ('/ me / friends? limit = 10), но не знаю, как их отсортировать.Кто-нибудь поможет?Какой код я должен попытаться отсортировать?какой-то Facebook API-код или PHP-код.Если php, то, возможно, у вас есть несколько советов, как это сделать. Шер!

Ответы [ 2 ]

3 голосов
/ 07 апреля 2011

Попробуйте, чтобы все заработало так, как вы упомянули:

$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);

Это позволит отсортировать друзей по дням рождения ... теперь вы можете использовать эти данные для дальнейшей логики

2 голосов
/ 14 апреля 2011

Я решил проблему самостоятельно. довольно простые решения ... может быть, слишком простые, но отлично работают. Это мой код возможно, это поможет кому-то в будущем;)

$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 в тип местного языка.

ура и большое спасибо ^ Люблю Шарму за оказанную помощь. Пиво для тебя;)

...