我個人覺得Facebook的圖形API有時有點不足。例如,在您當前的要求中,如果您只需要使用Graph API,則需要首先獲取所有喜歡特定帖子的用戶的列表。在列表後,您必須檢查用戶ID是否與登錄用戶的用戶ID相匹配,然後根據結果運行函數或其他內容。
相反,FQL提供了一個更簡單的功能。在我的應用程序中,爲了完全相同的功能,我專門使用了FQL。
您可以觸發一個簡單的查詢。例如:
SELECT likes.user_likes FROM stream WHERE post_id ='XXXXXXXXXXXXX_XXXXXXXXX'
用郵政編號替換X.確保您圍繞郵政ID與「YOUR_POST_ID」
嘗試像這樣在圖形API瀏覽器: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'
您請求的某些別名不存在:SELECT likes.user_likes FROM stream WHERE post_id ='100000845850045_495772590444719'我在圖api explorer中測試時出現此錯誤 – veerendra
@ user1761316:您是否在追加** fql?q = **之前'SELECT'查詢? –
是的,我得到了json響應作爲輸出。所以,如何得到用戶是否喜歡它。 – veerendra