25

Tôi đang sử dụng the most recent version of the Facebook SDK (cho phép kết nối với thứ gì đó gọi là 'API đồ thị' mặc dù tôi không chắc chắn). Tôi đã điều chỉnh mã ví dụ của Facebook để cho phép tôi kết nối với Facebook và nó hoạt động ... nhưng tôi không thể có được danh sách bạn bè của tôi.Lấy danh sách bạn bè trên Facebook bằng API mới nhất

$friends = $facebook->api('friends.get'); 

này tạo ra các thông báo lỗi: "Fatal error: OAuthException chưa gặp: (# 803) Một số bí danh mà bạn yêu cầu không tồn tại: friends.get ném vào /mycode/facebook.php on line 543"

Không biết tại sao đó là hoặc ý nghĩa của nó. Ai đó có thể cho tôi biết cú pháp đúng (cho API Facebook mới nhất) để có danh sách bạn bè không? (Tôi đã thử "$ friends = $ facebook-> api-> friends_get();" và nhận được một lỗi khác, "Fatal error: Gọi hàm thành viên friends_get() trên một đối tượng không trong /mycode/example.php trên dòng 129 ".)

Tôi có thể xác nhận rằng TRƯỚC KHI điểm này trong mã của tôi, mọi thứ đều ổn: Tôi kết nối với Facebook với phiên hợp lệ và tôi có thể lấy thông tin của mình và đưa nó lên màn hình ... tức là mã này thực hiện một cách hoàn hảo trước khi cuộc gọi friends.get thất bại:

$session = $facebook->getSession(); 
if ($session) { 
    $uid = $facebook->getUser(); 
    $me = $facebook->api('/me'); 
} 
print_r($me); 

Trả lời

59

tôi nghĩ rằng đây là những gì bạn muốn:

$friends = $facebook->api('/me/friends'); 
+0

bởi bất kỳ cơ hội nào yo biết cách nhận ảnh tiểu sử của ai đó bằng cuộc gọi api? một cái gì đó như ... $ friends = $ facebook-> api ('/ idofosmefriend/picture'); Và có một số tài liệu với tất cả các cuộc gọi đó ?, cảm ơn! –

+0

@nfvs, bạn có biết cách tôi có thể truy cập friends_hometown không? – alex

+13

Điều này không còn hoạt động với Graph API v2 hoặc thậm chí là ứng dụng đồ thị API API cũ nữa. Xem: https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends "Điều này sẽ chỉ trả lại bất kỳ bạn bè nào đã sử dụng (thông qua Đăng nhập bằng Facebook) ứng dụng đưa ra yêu cầu." – goodies4uall

13

Ge tting những người bạn như @nfvs mô tả là một cách tốt. Nó xuất ra một mảng đa chiều với tất cả bạn bè với id và tên thuộc tính (được sắp xếp theo id). Bạn có thể xem ảnh bạn bè như thế này:

foreach ($friends as $key=>$value) { 
    echo count($value) . ' Friends'; 
    echo '<hr />'; 
    echo '<ul id="friends">'; 
    foreach ($value as $fkey=>$fvalue) { 
     echo '<li><img src="https://graph.facebook.com/' . $fvalue->id . '/picture" title="' . $fvalue->name . '"/></li>'; 
    } 
    echo '</ul>'; 
} 
+0

đã hoạt động! cảm ơn, chỉ cần một dòng đã ném một lỗi cho tôi .... trong vòng lặp foreach thứ hai ... tôi đã thay đổi nó sau đây để nó làm việc cho tôi, echo '

  • '; – Stevanicus

    +0

    nó hoạt động theo đề xuất của bạn và được cập nhật tương tự trong mã. Cảm ơn Stevanicus & Geoffa – Elankeeran

    -3

    tiêu đề ('Loại nội dung: text/html; charset = utf-8');

    đầu vào trong trang của bạn.

    3

    Nếu bạn muốn sử dụng điểm REST của kết thúc,

    $friends = $facebook->api(array('method' => 'friends.get')); 
    

    khác nếu bạn đang sử dụng api đồ thị, sau đó sử dụng,

    $friends = $facebook->api('/me/friends'); 
    
    2

    Sử dụng FQL thay vào đó, một mình như SQL nhưng đối với Bảng dữ liệu của Facebook và dễ dàng bao gồm truy vấn dữ liệu mà bạn muốn tạo. Bạn sẽ không phải sử dụng tất cả các cuộc gọi/xx/xxx/xx đó, chỉ cần biết các bảng và cột bạn được xen kẽ.

    $myQuery = "SELECT uid2 FROM friend WHERE uid1=me()"; 
    $facebook->api("/fql?q=" . urlencode($myQuery)) 
    

    ví dụ tương tác lớn tại http://developers.facebook.com/docs/reference/fql/

    24

    Đây là phiên bản sống của PHP Code để có được bạn bè từ Facebook

    <?php 
        $user = $facebook->getUser(); 
    
    
        if ($user) { 
         $user_profile = $facebook->api('/me'); 
         $friends = $facebook->api('/me/friends'); 
    
         echo '<ul>'; 
         foreach ($friends["data"] as $value) { 
          echo '<li>'; 
          echo '<div class="pic">'; 
          echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>'; 
          echo '</div>'; 
          echo '<div class="picName">'.$value["name"].'</div>'; 
          echo '</li>'; 
         } 
         echo '</ul>'; 
        } 
    ?> 
    
    +0

    Tài liệu nói rằng, nó cho thấy những người bạn cũng sử dụng ứng dụng của bạn. Tôi đã thử trên mã và nhận được kết quả đó Xem liên kết của họ: (Kiểm tra phần read_friendlists) https://developers.facebook.com/docs/facebook-login/permissions/v2.2 –

    0

    Using CodeIgniter OAuth2/0.4.0 sparks,

    in Auth.php file,

    $user = $provider->get_user_info($token); 
    
    $friends = $provider->get_friends_list($token); 
    print_r($friends); 
    

    and in Facebook.php file under Provider, add the following function,

    public function get_friends_list(OAuth2_Token_Access $token) 
        { 
          $url = 'https://graph.facebook.com/me/friends?'.http_build_query(array(
            'access_token' => $token->access_token, 
          )); 
          $friends = json_decode(file_get_contents($url),TRUE); 
    
          return $friends; 
        } 
    
    prints the facebenter code hereook friends. 
    
    0
    friends.get 
    

    là chức năng để có được một danh sách các người bạn của

    Và có điều này là tốt nhất

    $friends = $facebook->api('/me/friends'); 
    
        echo '<ul>'; 
        foreach ($friends["data"] as $value) { 
         echo '<li>'; 
         echo '<div class="pic">'; 
         echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>'; 
         echo '</div>'; 
         echo '<div class="picName">'.$value["name"].'</div>'; 
         echo '</li>'; 
        } 
        echo '</ul>'; 
    
    7

    Chỉ cần một người đứng đầu lên cho bất cứ ai tình cờ gặp phải câu hỏi này sử dụng v2.0 của API Graph: ý chí này không hoạt động nữa. Trong v2.0, gọi/tôi/bạn bè chỉ trả về một danh sách bạn bè của người cũng sử dụng ứng dụng:

    • A user access token with user_friends permission is required to view the current person's friends.
    • This will only return any friends who have used (via Facebook Login) the app making the request.
    • If a friend of the person declines the user_friends permission, that friend will not show up in the friend list for this person.
    +2

    Có cách nào để có danh sách tất cả bạn bè với API đồ thị 2.0 không? – Eric

    3

    trong phiên bản gần đây của facebook sdk, facebook đã vô hiệu hóa tính năng cho phép bạn truy cập một số một danh sách bạn bè vì lý do bảo mật ... hãy kiểm tra tài liệu để tìm hiểu thêm ...

    Các vấn đề liên quan