Фейсбук в ближайшее время будет только в этом году
Я хочу получить дни рождения друзей на Facebook с текущей даты до следующего года. todate - дата 364 дней до настоящего времени в м / д. для этой цели первый fql предназначен для извлечения данных с января по текущую дату, а второй - для выборки данных с текущей даты до 31 декабря. Я хочу применить нумерацию страниц к предстоящим дням рождения в течение следующих 11 месяцев и 29 дней. Следующие запросы работают и извлекают данные. Кто-нибудь может сказать мне лучший способ сделать это. Любое предложение будет высоко оценено.
$fromDate = date('m/d');
$past_birthdays = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT uid, name, birthday, birthday_date,substr(birthday_date,0,3) FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday_date<'$toDate' AND birthday_date>='01/01' order by birthday_date",
'access_token' => $accessToken
));
if ($toDate > $fromDate) {
$condition = " AND birthday_date<'$toDate'";
} else {
$condition = "";
}
$upcoming_birthdays = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT uid, name, birthday, birthday_date,substr(birthday_date,0,3) FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) AND birthday_date>='$fromDate' $condition order by birthday_date",
'access_token' => $accessToken
));
1 ответ
Как и в вашем случае, я проверил на Facebook api explorer, если вы задаете лимит в своем запросе, тогда его вывод не согласован, лучший способ решить вашу проблему - загрузить весь список дней рождений в массив и показать его в слотах.
$fromDate = date('m/d');
$past_birthdays = "";
$upcoming_birthdays = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT uid, name, birthday, birthday_date, substr(birthday_date, 0,3) from user where uid in (select uid2 from friend where uid1=me()) and birthday_date >='$fromDate' order by birthday_date Limit 0,500",
'access_token' => $accessToken
));
$no = count($upcoming_birthdays); //exit;
if ($no < 500) {
$Limit2 = 500 - $no;
$past_birthdays = $facebook->api(array(
'method' => 'fql.query',
'query' => "SELECT uid, name, birthday, birthday_date, substr(birthday_date, 0,3) from user where uid in (select uid2 from friend where uid1=me()) and birthday_date >='01/01' and birthday_date <= '$fromDate' order by birthday_date Limit 0,$Limit2",
'access_token' => $accessToken
));
//echo count($past_birthdays);exit;
$upcoming_birthdays = array_merge($upcoming_birthdays, $past_birthdays);
нет необходимости принимать todate, так как вы выбираете весь год. Этот код должен получить только 500, но выполнить запрос за весь год.