这是一个棘手的问题,您如何获得 Facebook 对象(例如相册或照片)的点赞数?我知道 facebook 有一个名为 link_stat 的 fql 表,它允许您获取外部 url 的点赞数,但如果对象在 facebook 内,它似乎不起作用。如果您通过特定对象上的 opengraph api 访问喜欢,它最多只会返回 4 个喜欢该对象的用户,即使可能有几千个用户喜欢它。有什么线索吗?
5 回答
请参阅http://developers.facebook.com/docs/reference/fql/like
您可以执行fql 查询以根据 object_id 检索喜欢的列表,然后进行计数。
我可以通过更改隐私设置来做到这一点。如果您查询表中的 XYZ 用户之类的用户,除非用户已将“可见性”设置为朋友(照片、相册、视频、链接或便笺),否则无论您是否请求权限,它都不会返回数据(从您的应用程序中)。
例如,我是 XYZ 用户,我喜欢我的 GHI 发布的某个链接。我使用为 Facebook 开发的应用程序并允许访问我的链接。现在,如果应用程序尝试访问我在 Facebook 上喜欢的链接,则应用程序将无法获取 GHI 发布的链接(我喜欢的),除非 GHI 已将他的链接设置为“朋友”的可见性。
如果有人需要更多帮助,请回到这个论坛。
问候,哈龙
# 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;
=> get like info of photo`enter code here`
显然,自从您第一次提出这个问题以来,答案已经发生了很大变化,但这是今天的答案。使用 Facebook Graph API 找出如何从 Facebook 获取相册中每张照片的信息:
https://graph.facebook.com/albumID/photos?fields=id,likes.summary(true),comments.summary(true)&after=XXXXXX&access_token=XXXXXX
使用 Ajax 发送 GET 请求:
$.ajax({
dataType: "json",
method: "GET",
url: "https://graph.facebook.com/" + albumID + "/photos",
data: {fields: "id,likes.summary(true),comments.summary(true)",
limit: 100,
after: afterStr,
access_token: token})
变量 'afterStr' 是下一页数据的 ID。
然后以下来计算我们从 Facebook 获得的点赞和评论:
var dArr = msg.data;
var i = 0;
for (i = 0; i < dArr.length; i++) {
like += dArr[i].likes.summary.total_count;
comment += dArr[i].comments.summary.total_count;
}
使用 ID 将结果发布到您的 HTML 中:
$("#likeID").html(like);
$("#commentID").html(comment);
工作演示在这里。
希望这可以帮助!
如今,如果您知道要查询的帖子类型,则可以使用 FQL。例如,如果您想知道一张照片有多少赞,您可以使用:
SELECT like_info FROM photo WHERE object_id = 414122065292107
它返回以下内容:
{
"data": [
{
"like_info": {
"can_like": true,
"like_count": 1354,
"user_likes": false
}
}
]
}
不同类型的内容存在类似的方法,但对我来说似乎不一致,因此请查看 FQL 文档。