最後の投稿から 3 時間後にスケジュールされた投稿をページに投稿するアプリがあります。
問題は、スケジュールされたすべての投稿を降順で取得できる簡単な方法 (私が見つけた) がないように思われるため、最新の日付の投稿がリストの最初になることです。
スケジュールされたすべての投稿を逆順に戻すことができる fql クエリまたは別の方法があるので、最初の配列キーからscheduled_publish_timeを簡単に取得できますか
私が使用しているコードは
$posts = $facebook->api($fanpage.'/promotable_posts?limit=500');
$scheduledposts = array();
if($posts){
// find last published post
$time = time();
foreach($posts['data'] as $post){
if($post['is_published'] == false){
$scheduledposts[] = $post;
if($time < $post['scheduled_publish_time']){
$time = $post['scheduled_publish_time'];
}
}
}
$timetopost = $time + 10800;
}
// sort scheduled posts by order of scheduled_publish_time in reverse
usort($scheduledposts, function($a, $b) {
return $b['scheduled_publish_time'] - $a['scheduled_publish_time'];
});
$posts 配列の順序は必ずしも時系列ではなく、スケジュールに 500 件を超える投稿がある場合はどうなるでしょうか? schedule_publish_date が最も遠い過去 5 件のスケジュールされた投稿だけを取得できるようにしたい