嘿所有,
我为比赛制作了一个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中?我是否需要申请其他权限?
非常感谢任何帮助或建议!
答案 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;
=>得到像照片的信息