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

问题描述 投票:3回答:3

大家好,

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

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

facebook-graph-api count facebook-like facebook-fql photo
3个回答
1
投票

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


0
投票

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

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


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;

=>获取相似的照片信息

© www.soinside.com 2019 - 2024. All rights reserved.