Facebook Graph API和FQL就像照片一样都不正确吗?

时间:2011-10-18 13:57:29

标签: facebook-graph-api count facebook-like facebook-fql photo

嘿所有,

我为比赛制作了一个facebook应用程序,允许用户上传他们的照片。上传后,照片会发布到其个人资料中的专用相册中。一旦照片在那里,用户应该收集尽可能多的喜欢。

目前我已尝试使用Facebook Graph API和Facebook FQL来检索喜欢的数量,但检索到的喜欢并不总是与用户个人资料上的喜欢匹配。

有些用户声称有超过200个喜欢,但到目前为止,API仅返回了最多101个喜欢。


要求所有用户授予应用程序以下权限:

user_hometown, publish_stream, read_stream, user_photos and offline_access


使用Facebook PHP SDK 3.0.1我尝试使用此FQL查询来收集照片的数量:

  # fql query
  $fql = "SELECT object_id FROM like WHERE object_id=" . $photo_id;

  # api request
  $request = array(
    'method' => 'fql.query', 'query' => $fql
  );

  # run batch request
  $likes = $this->facebook->api($request);

  # return like count
  return count($likes);


我还尝试了以下Graph API请求(也使用Facebook PHP SDK 3.0.1)来收集照片中的相似数量:

$likes = $this->facebook->api($photo_id.'/likes');
return count($likes['data']);


奇怪的是,似乎都没有返回正确的结果。我可以理解API是否稍微不准确,但根据API,一些图片在今天早上收到了100个喜欢,然后在几个小时后收到了0。

有没有人有任何想法我可能做错了什么?照片及其相册是否需要公开?喜欢这张照片的人是否需要拥有公开的个人资料才能显示在API中?我是否需要申请其他权限?

非常感谢任何帮助或建议!

3 个答案:

答案 0 :(得分:1)

这里遇到同样的问题。这些喜欢似乎默认为数百个分页。使用“LIMIT”查询选项覆盖此设置。

答案 1 :(得分:0)

  

有没有人有任何想法我可能做错了什么?

是的,我认为使用他们喜欢的插件进行比赛是违反Facebook政策的。请参阅:https://www.facebook.com/promotions_guidelines.php

答案 2 :(得分:0)

   # fql query
   $fql = "SELECT like_info FROM photo WHERE object_id=" . $photo_id;

   # api request
   $request = array(
    'method' => 'fql.query', 'query' => $fql
   );

  # run batch request
  $likeInfo = $facebook->api(array(
    'method' => 'fql.query', 'query' => $fql
  ));

  var_dump($likeInfo);die;

=>得到像照片的信息