【问题标题】:Facebook Events Display OrderFacebook 事件显示顺序
【发布时间】:2013-08-13 10:51:58
【问题描述】:

我创建了一个页面,您可以在其中看到来自公共页面的事件

PHP 代码

<?php
require 'src/facebook.php';
$facebook = new Facebook(array(
    'appId' => 'ID',
    'secret' => 'SECRET',
    'cookie' => true, 
));
try{
    $events=$facebook->api('/PAGE/events?access_token=TOKEN');
}catch (FacebookApiException $e){
    error_log($e);
}
foreach ($events["data"] as $event){
    // Time
    $startTime=strtotime($event["start_time"]);
        // Only Upcoming events
        if ((time()-$startTime)<=60*60*24*1 || $startTime>time()){

                echo '<li><a href="#" id="'.$event["id"].'" class="event_link">
                <img class="ui-li-thumb" src="https://graph.facebook.com/'.$event["id"].'/picture?type=small" width="70px;" height="100%" />
                <h3 class="ui-li-heading">'.$event['name'].'</h3>
                </a></li>';
            }
        }
?>

它工作得很好,只是我得到了列表中最接近的事件

如何更改输出顺序??(当然可以的话)。

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-php-sdk facebook-access-token


    【解决方案1】:

    你可以使用usort:

    //Sorts by name. Switch 'name' for other sorts.
    //Switch 1 and -1 to reverse the sort.
    usort($events["data"],function($a,$b){
        if ($a['name'] == $b['name']) {
            return 0;
        }
        return ($a['name'] < $b['name']) ? -1 : 1;
    });
    

    【讨论】:

      【解决方案2】:

      您必须为此使用fql。 FQL - Event

      这样您就可以在查询中使用ORDER BY 对任何参数进行排序

      例如:

      select eid from event where creator=PAGE_ID and eid in (select eid from event_member where uid=PAGE_ID) ORDER BY start_time DESC

      【讨论】:

      • 如果可能你能提供更多信息吗?
      • 在什么方面? fql 查询与您使用的图形 api 类似
      【解决方案3】:
      <?php
      require 'src/facebook.php';
      $facebook = new Facebook(array(
          'appId' => 'ID',
          'secret' => 'SECRET',
          'cookie' => true, 
      ));
      $fql = "SELECT 
                  name, pic, start_time 
              FROM 
                  event 
              WHERE 
                  eid IN ( SELECT eid FROM event_member WHERE uid = PAGE_ID ) 
              AND 
                  start_time >= now()
              ORDER BY 
                  start_time asc";
      
      $param  =   array(
          'method'    => 'fql.query',
          'query'     => $fql,
          'callback'  => ''
      );
      
      $fqlResult   =   $facebook->api($param);
      foreach( $fqlResult as $keys => $values ){
      
          echo '<li><a href="#" id="'.$values["id"].'" class="event_link">
                      <img class="ui-li-thumb" src="'.$values['pic'].'" width="70px;" height="100%" />
                      <h3 class="ui-li-heading">'.$values['name'].'</h3>
                      </a></li>';
      
      }
      ?>
      

      解决了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-06-09
        • 2018-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-12
        • 2014-12-08
        • 1970-01-01
        相关资源
        最近更新 更多