我个人觉得 Facebook Graph API 有时有点不足。例如,在您当前的需求中,如果您只需要使用 Graph API,您将需要首先获取所有喜欢特定帖子的用户的列表。获得列表后,您必须检查用户 ID 是否与登录用户的 ID 匹配,然后根据结果运行函数或其他内容。
相反,FQL 提供了更简单的功能。在我的应用程序中,对于完全相同的功能,我专门使用 FQL。
您可以触发一个简单的查询。例如:
SELECT likes.user_likes FROM stream WHERE post_id ='XXXXXXXXXXXXX_XXXXXXXXX'
将 X 替换为 Post 的 ID。确保用“YOUR_POST_ID”将帖子 ID括起来
在 Graph API Explorer 中这样尝试:fql?q=SELECT likes.user_likes FROM stream WHERE post_id = 'ENTER_YOUR_POST_ID'
运行查询后,您应该得到如下所示的结果:
{
"data": [
{
"likes": {
"user_likes": true
}
}
]
}
如果用户喜欢帖子,如果用户不喜欢帖子,则该字段user_likes
将为真和假。
您可以像这样解析结果(伪代码):
if (JOLikeStatus.has("likes")) {
JSONObject optLikes = JOLikeStatus.optJSONObject("likes");
if (optLikes.has("user_likes")) {
String getUserLikes = optLikes.getString("user_likes");
if (getUserLikes.equals("true")) {
String getLikeStatus = "true";
} else if (getUserLikes.equals("false")) {
String getLikeStatus = "false";
}
} else {
String getLikeStatus = null;
}
} else {
String getLikeStatus = null;
}
编辑 2:要获得总喜欢的数量(计数),请修改前面的查询,如下所示:
fql?q=SELECT likes.user_likes, likes.count FROM stream WHERE post_id = 'ENTER_YOUR_POST_ID'