2011-01-27 4 views
0

저는 특정 벽 게시물을 검색하고 사용자가 좋아하거나 좋아할 수있게 해주는 javascript sdk를 사용하여 페이스 북 응용 프로그램을 개발 중입니다. 이 기능을 완료하려면 사용자가 각 게시물의 시작을 좋아하는지 여부를 알아야합니다. 이것을 결정하는 가장 좋은 방법은 무엇입니까? 나는 특정 게시물에 대한 모든 좋아하는 것을 검색하고, ID를 통해 반복하고, 각각의 ID를 사용자 ID와 비교하여 테스트하는 방법을 생각했지만, 이는 효율적인 솔루션처럼 보이지 않습니다. 더 좋은 아이디어? 미리 감사드립니다.Facebook 사용자가 특정 게시물을 좋아하는지 확인 - 자바 스크립트

답변

0

가능한 경우 json 배열에서 양식으로 가져올 수 있습니다. 그런 다음 사용자가 좋아하는지 확인하십시오. 나는 프로그래머 다른 방법을 생각하지만,이 답변을 숙련 된 사용자를 기다릴 수없는 )

Here

0

http://developers.facebook.com/docs/reference/api/post/이 문제에 대한 FQL을 사용하는 것이 좋습니다. like (docs) 표를 사용하여 소식을 좋아하는 사용자 목록을 검색 할 수 있습니다. 이 목록이 있으면 사용자가 IN인지 여부를 확인할 수 있습니다.

이 목록을 한 번만 검색 한 다음 ID (또는 ID)를 확인합니다. 자바 스크립트

예 :

<script src="http://connect.facebook.net/en_US/all.js"></script> 
<script type="text/javascript"> 
FB.api({ 
     method: 'fql.query', 
     query: 'SELECT user_id FROM like WHERE object_id=193397964020317' 
    }, 
    function(response) { 
     var results = []; 
     for (var i = 0; i < response.length; i++) { 
      results.push(response[i].user_id); 
     } 

     if (results.indexOf("725047048") != -1) { 
      // exists 
     } else { 
      // doesnt exists 
     } 
    } 
); 
</script> 

나는 당신에게 PHP의 예를 들기도 아마 누군가가 그것을 필요 :

$results = json_decode(file_get_contents("https://api.facebook.com/method/fql.query?query=".urlencode("SELECT user_id FROM like WHERE object_id='193397964020317'")."&format=json")); 
if ($results) { 
    $user_ids = array(); 
    foreach ($results as $result) { 
     $user_ids[] = $result->user_id; 
    } 
} 
var_dump($user_ids); 
if (in_array(CURRENT_USER_ID, $user_ids)) { 
    // exists 
} else { 
    // does not exists 
} 

행운을 빕니다! 당신이 user_id하고 쉬운 작업 년대 post_id 알고

1

만큼 :

사용
FB.api({ 
    method: 'fql.query', 
    query: 'SELECT object_id FROM like WHERE post_id="post_id" AND user_id=me()' 
    }, 
    function(response) { 
    if(response.length) { 
     // the user likes the post! 
    } 
    } 
); 

테이블 : like

관련 문제