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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Facebook Graph API和FQL就像照片一样都不正确吗?相关的知识,希望对你有一定的参考价值。

大家好,

我已经为比赛制作了一个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中?我是否需要申请其他权限?

任何帮助或建议将不胜感激!

答案

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

另一答案

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

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

另一答案
   # 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;

=>获取相似的照片信息

以上是关于Facebook Graph API和FQL就像照片一样都不正确吗?的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Graph API:如何获得在线朋友/或最后 X 分钟活跃

使用 Facebook Graph API 按位置搜索公共事件

Facebook Graph API:提要中缺少帖子

Facebook Graph API - 获取好友信息

如何使用图形 api/FQL 从 facebook 获取过去/结束的公共事件?

使用 Graph API 只结交已婚朋友