facebook - 参加朋友最佳实践

时间:2013-08-31 17:18:08

标签: php facebook performance facebook-graph-api facebook-fql

我有一个facebook活动列表,我想查找参加每个活动的朋友列表。

这部分由REST服务器完成:

/**
 * $this->facebook is instance of `BaseFacebook`
 * $results contains 2 events
**/
$stime=time();

$fb_eids=array();
foreach($results as $result)
    $fb_eids[]=$result['event']->getFacebookID();

$fb_eids=implode(',',$fb_eids);
$fql=array();
$fql['q1'] = "SELECT uid2 FROM friend WHERE uid1 = me()";
$fql['q2'] = <<<SQL
SELECT uid, eid FROM event_member WHERE 1
    AND eid IN({$fb_eids})
    AND rsvp_status = 'attending'
    AND uid IN (SELECT uid2 FROM #q1)
;
SQL;

var_dump($this->facebook->api(array('method'=>'fql.multiquery','queries'=>$fql)));
var_dump(time()-$stime);

结果是这个过程花了我 5秒!!
我希望缩短那段时间,让它更快。

如何改善这一过程?:

  1. 使用客户端获取好友信息?
  2. 在我的数据库中缓存每个用户的好友列表(uids)?(是否可以添加订阅好友列表?)
  3. 查询结果?(这不是一个好的选择,因为我想要最新的结果)?
  4. 拆分它以查询每个事件。 我已经尝试过了,而且需要更长的时间

0 个答案:

没有答案