2011-01-24 1 views
13

내 모든 친구가 좋아할 수 있나요? ?? 지금, 나는이 2 단계로이납니다 : 좋아 내가 모든 개인을 얻고 그 목록을 반복하여 친구를 Facebook API를 통해 좋아하는 방법

모든 내 친구 목록

  • 얻기

    1. 를하지만 그것은 매우 큰 과정을 보인다, 누구나이 작업의 성능을 향상시킬 생각이 있습니까?

  • 답변

    14

    나는 FQL이 그래프 API 결과를 통해 반복보다 더 빨리 될 것입니다 사용하여 페이스 북의 API 문서

    FB.api("/likes?ids=533856945,841978743") 
    
    FB.api("me/friends",{ 
        fields:'id', 
        limit:10 
    },function(res){ 
        var l='' 
        $.each(res.data,function(idx,val){ 
        l=l+val.id+(idx<res.data.length-1?',':'') 
        }) 
        FB.api("likes?ids="+l,function(res){ 
         console.log(res); 
        }) 
    }) 
    
    +0

    몇 가지 코드를 더 공유 할 수 있습니까? – Patrioticcow

    +0

    FB는 무엇입니까? 나는 안드로이드에 대해 같은 필요합니다. –

    +0

    FB는 javascript Facebook SDK입니다. [SDK 페이지는 여기에 있습니다.] (https://developers.facebook.com/docs/javascript) –

    0

    나는 그것이 유일한 방법이라고 생각합니다. 나는이 문제를 몇 주 전에 보았다. 그들이 API를 변경했다고 생각하지 마십시오.

    http://developers.facebook.com/docs/reference/api/

    편집 : 나는 당신이 ... 당신은 당신이 무엇을해야 사용자가 좋아하는 게시물의 목록을 얻고 싶은 것을 의미 경우 무엇을 의미하는지 충분히 이해 확실하지 않다 이것은이다 : 좋아하는 자신의 게시물의

  • 경우
  • 확인 모든 게시물을 취득하는 경우
    1. 친구에 의해
    2. 확인 모든 게시물을 얻으 같은 그/그녀의 자신의 게시물의는

    당신이 원하는 무엇인가요 결과

  • 를 결합 s는? 마침내

    +0

    감사합니다. 하지만 실제로는 이런 식으로 구현할 수 없습니다! 사용자가 좋아하는 게시물을 얻으려면 어떻게해야합니까? 나는 그것을 할 어떤 방법을 찾을 수 없습니다. http://developers.facebook.com/docs/reference/api/user/에는 "좋아요"만 있지만 사용자가 좋아하는 페이지이며 게시물이 아닙니다. – maxgrinev

    +0

    내 편집보기. 너가 원하는게 그거야? –

    +1

    나는 이것을 할 수있는보다 효율적인 방법이 있다고 생각하지 않습니다. 나는 방금 FQL과 많이 놀았으며, 지식 수준에 따라 친구 목록을 먼저 얻어야한다고 믿고, 친구들 한테는 다른 사람에게 전화를해야한다고 생각합니다. 이것은 매우 긴 과정 일 수 있습니다. 이게 유일한 방법입니까? –

    5

    보고 이주 후 발견했다. 친구들이 좋아하는 페이지의 ID를 얻을 수는 있지만, 불행히도 FQL은 그 정보 (즉, 이름)를 반환하지 않습니다. 다음을보십시오.

    여기서는 friends_likes 권한이있는 PHP SDK를 사용한다고 가정합니다.

    // hold on to your user ID 
    $user_id = $facebook->getUser(); 
    
    // query your friend's likes based on their ID 
    $query = "SELECT uid, page_id FROM page_fan WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $user_id)"; 
    $result = $fb->api(array(
        'method' => 'fql.query', 
        'query' => $query, 
    )); 
    
    // optionally group the results by each friend ID 
    function arraySort($input, $sortkey){ 
        foreach ($input as $key => $val) { 
        $output[ $val [ $sortkey ] ][] = $val; 
        } 
        return $output; 
    } 
    $friendLikes = arraySort($result,'uid'); 
    
    // output the results 
    echo sprintf('<pre>%s</pre>', print_r($friendLikes,TRUE)); 
    

    이점은 하나의 API 호출 만 수행한다는 것입니다. 친구 이름을 얻으려면 별도로 전화를 걸어야하고 좋아하는 페이지 정보를 보려면 다른 전화를해야합니다. 그러나 이제는 똑바로 접근 할 수있는 ID가 있습니다.