1

"me/home"그래프 API 호출을 사용하여 로그인 한 사용자에 대한 Facebook 뉴스 피드를 가져올 수 있었고 활동에 결과를 표시했습니다.게시물의 상태와 같은 현재 사용자를 얻으십시오

이제 게시물의 열을 쿼리하고 현재 사용자가 상태를 표시 할 게시물을 좋아하는지 확인하는 다양한 방법을 시도해 왔습니다. 기본적으로 나는 사용자가 게시물을 좋아했다는 것을 나타 내기 위해 드로어 블을 설정하고 있습니다.

내가 지금까지 시도한 코드는 실제로 게시 할 수 없습니다. 아무도 작동하지 않기 때문에 코드를 게시 할 수 없습니다. 그리고 저를 믿으십시오, 나는 문자로 수많은 방법을 시도했다.

나는 누군가가 적어도 올바른 방향으로 나를 자극 할 수 있다면 고맙겠습니다.

편집 : 내가 좋아하는 검사 카운트 ArrayList에에 추가하고 어디

이 코드는 다음과 같습니다이 좋아하는 열을 쿼리하고 현재 사용자의 ID와 결과를 비교에서 내 최신 시도이다. 이것은 또한 게시물에서 좋아하는 것을 얻기 위해 쿼리를 실행하는 곳이기도합니다.

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을 사용할 수 있습니다

// 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 클래스)입니다.

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

응답은 다음과 같이 것 post_id를, user_likes에 해당하는 경우, 그는 좋아했다 바꾸기 그것을

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

사용자가 게시물 권한을 원하거나 거부 할 수 있는지 여부를 반환합니다. 방금 두 개의 게시물을 확인했는데 하나는 내가 좋아했고 다른 하나는 위의 예와 같은 결과를 반환합니다. 친구가 프로필 사진을 변경했다는 것을 보여주는 또 다른 게시물은 "_false_"를 반환합니다. –

+0

또한 user_likes 속성도 추가했습니다. 시도해보십시오. – Venu

+0

이제 결과가 올바르게 반환됩니다. 이 기능이 작동하는지 확인하고 5 분 후에 다시 확인하십시오. 그것이 유망 해 보이고 그것이 작동 할 것 같은 느낌이 들기는하지만. :-) –