1

我已經能夠使用「我/家」圖形API調用爲登錄用戶提供Facebook新聞提要,並在活動中顯示結果。獲得當前用戶喜歡的帖子狀態

現在我一直在嘗試多種方法來查詢帖子的列,並檢查當前用戶是否喜歡帖子來顯示狀態。從本質上講,我設置了一個可繪製的表示用戶喜歡的帖子。

我真的不能發佈任何我嘗試過的代碼,因爲它們都沒有工作。相信我,我嘗試了無數種方法。

如果有人能夠至少讓我朝正確的方向發展,我將不勝感激。

編輯:這是我在查詢欄中喜歡和結果與當前用戶的ID進行比較最新嘗試:

這段代碼是我在哪裏檢查喜歡數,並將它們添加到ArrayList。這也是我正在運行查詢以獲取帖子中的喜歡的地方。

// GET THE POST'S LIKES COUNT 

    if (json_data.has("likes")) { 
     JSONObject feedLikes = json_data.optJSONObject("likes"); 
     String countLikes = feedLikes.getString("count"); 
     postLikesCountArrayList.add(countLikes); 

     // TEST STARTS 

     // QUERY THE LIKES COLUMN TO CHECK YOUR LIKE STATUS ON A POST 

     Bundle params = new Bundle(); 
     params.putString(Facebook.TOKEN, Utility.mFacebook.getAccessToken()); 
     Utility.mAsyncRunner.request(finalThreadID + "/likes&limit=200", params, new LikesListener()); 

     // TEST ENDS 
     } else { 
      String countLikes = "0"; 
      postLikesCountArrayList.add(countLikes); 
     } 

而這個代碼塊就是結果被檢查的偵聽器(在同一活動privte類):

private class LikesListener extends BaseRequestListener { 
     @Override 
     public void onComplete(final String response, final Object state) { 

      try { 
       JSONObject JOLikes = new JSONObject(response); 

       JSONArray JALikes = JOLikes.getJSONArray("data"); 

       for (int i = 0; i < JALikes.length(); i++) { 
        JSONObject JOTemp = JALikes.getJSONObject(i); 

        if (JOTemp.has("id")) { 
         String getTempID = JOTemp.getString("id"); 

         if (getTempID.equals(initialUserID)) { 

          Runnable run = new Runnable() { 

           @Override 
           public void run() { 
            // TODO Auto-generated method stub 


            ImageView postYourLike = (ImageView) findViewById(R.id.postYourLike); 
            postYourLike.setBackgroundResource(R.drawable.btn_icon_liked); 
           } 
          }; 
          TestNewsFeeds.this.runOnUiThread(run); 
         } 
        } 

       } 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
+1

對不起,你真的需要向我們展示的,你已經嘗試過什麼的例子, **當你做了**時發生了什麼。現在,您可以將您的代碼粘貼到計算器中,以便我們知道。 – Ashe

+0

沒問題。添加最新的嘗試代碼。 –

+1

@Len:我已經用最新嘗試的代碼更新了帖子。我向你保證,沒有計算器參與。 ;-) –

回答

2

您可以使用此FQL。更換POST_ID

SELECT likes.can_like, likes.user_likes FROM stream WHERE post_id = "1274834235_3976149403543" 

反應是這樣的,如果user_likes是真實的,他很喜歡它

{ 
    "data": [ 
    { 
     "likes": { 
     "can_like": true, 
     "user_likes": false 
     } 
    } 
    ] 
} 
+0

這會返回用戶是否可以喜歡該帖子的權利?我剛剛檢查了兩個帖子,一個是我喜歡的,另一個是我沒有的,他們都返回了與上例中相同的結果。另一個顯示朋友已更改個人資料圖片的帖子返回「_false_」 –

+0

我也添加了user_likes屬性。試試這個 – Venu

+0

現在確實可以正確返回結果。給我5分鐘來檢查這是否有效,並回到你身邊。雖然它看起來很有希望,我有一種感覺,它會起作用。 :-) –