2011-12-20 35 views

Trả lời

73

Tôi nghĩ rằng tôi sử dụng phương pháp đơn giản nhất để có được hình ảnh hồ sơ đầy đủ . Bạn có thể lấy hình ảnh cá nhân đầy đủ hoặc bạn có thể thiết lập kích thước hồ sơ hình ảnh bản thân:

$facebook->api(me?fields=picture.width(800).height(800)) 

Bạn có thể đặt widthheight theo nhu cầu của bạn. Mặc dù Facebook không trả lại kích thước chính xác được yêu cầu, nhưng nó trả về hình ảnh kích thước gần nhất có sẵn với chúng.

+0

upvote cho câu trả lời đúng .. cảm ơn nó hoạt động –

-8

Hình ảnh tiểu sử được thu nhỏ xuống 125x125 trên sever facebook khi họ đang được tải lên, vì vậy như xa như tôi biết bạn không thể nhận được hình ảnh lớn hơn thế. Bức tranh bạn đang nhận được bao nhiêu?

+5

là chúng thực sự? nếu bạn bấm vào một hồ sơ, bạn nhận được để các pic đầy đủ :) – Richard

+0

Có, nhưng hình ảnh đó không được phân loại như hình ảnh hồ sơ. Facebook lưu trữ ảnh hồ sơ (hình thu nhỏ 125x125), cũng như ảnh gốc. Tôi nghĩ bạn chỉ có thể truy cập vào ảnh tiểu sử, bởi vì các hình ảnh khác của một người mang tính cá nhân hơn. – ACarter

+0

Nhưng ứng dụng của tôi đã yêu cầu quyền user_picture? – Richard

6

tìm ra một cách:

$albums = $facebook->api('/' . $user_id . '/albums'); 
foreach($albums['data'] as $album){ 
    if ($album['name'] == "Profile Pictures"){ 
     $photos = $facebook->api('/' . $album['id'] . '/photos'); 
     $profile_pic = $photos['data'][0]['source']; 
     break; 
    } 
} 
+3

vì vậy một số thời gian bạn cũng có hồ sơ quá khứ pic –

4

Như đã đề cập ở trên, có vẻ như ảnh bìa của album hồ sơ là một hình ảnh hồ sơ cá nhân hi-res. Tôi sẽ kiểm tra loại album "hồ sơ" thay vì tên, vì tên có thể không nhất quán trên các ngôn ngữ khác nhau, nhưng loại phải là.

Để giảm số lượng yêu cầu/phân tích cú pháp, bạn có thể sử dụng FQL này: "chọn cover_object_id từ album nơi type = 'hồ sơ' và chủ sở hữu = user_id"

Và sau đó bạn có thể xây dựng các url hình ảnh với: "https://graph.facebook.com/" + cover_object_id + "/ hình ảnh & type = bình thường & access_token =" + access_token

hình như không có "lớn" loại cho hình ảnh này, nhưng "bình thường "một cái vẫn còn khá lớn.

Như đã lưu ý ở trên, ảnh này có thể ít truy cập hơn ảnh hồ sơ công khai. Bạn cần có quyền user_photos hoặc friend_photos để truy cập nó.

+0

Tuyệt vời! Liên kết trực tiếp tới ảnh bìa đã hoạt động tốt cho tôi! – quantum

2

Với javascript bạn có thể nhận được kích thước đầy đủ hình ảnh hồ sơ cá nhân như thế này

vượt qua bạn accessToken đến getface() chức năng từ FB.init bạn gọi

function getface(accessToken){ 
    FB.api('/me/friends', function (response) { 
    for (id in response.data) { 
     var homie=response.data[id].id   
     FB.api(homie+'/albums?access_token='+accessToken, function (aresponse) { 
      for (album in aresponse.data) { 
      if (aresponse.data[album].name == "Profile Pictures") {      
       FB.api(aresponse.data[album].id + "/photos", function(aresponse) { 
       console.log(aresponse.data[0].images[0].source); 
       });     
      } 
      } 
     }); 
    } 
    }); 
} 
117

Set chiều rộng hoặc chiều cao bằng một số tùy tiện lớn:

https://graph.facebook.com/username_or_id/picture?width=9999

Nếu chiều rộng và chiều cao là cùng một số, hình ảnh này được cắt để một hình vuông.

+3

hoạt động như ma thuật :) – user1105951

+0

Đừng nghĩ rằng có bất cứ điều gì kỳ diệu về con số này. Có lẽ có thể là bất kỳ số lượng lớn ... – Michael

+0

Điều này vẫn mang lại hình ảnh nhỏ hơn. – Foreever

2

Bạn có thể sử dụng các công cụ dành cho nhà phát triển như firebug trong firefox. Nhấp chuột phải vào hình ảnh và kiểm tra phần tử bằng firebug.

Bạn sẽ nhận được URL từ nơi facebook truy xuất hình ảnh.Ở đó bạn sẽ tìm thấy một số URL như thế này

http://profile.ak.fbcdn.net/hprofile-ak-snc7/c160.2.762.762/s160x160/297962_1190xxxxx203889_104xxxxx723_n.jpg

Tôi đã đặt một số cố tình đặt 'x' trong liên kết vì lý do riêng tư.

Để xem hình ảnh ở độ phân giải đầy đủ mở một tab mới và mở url này:

http://sphotos-e.ak.fbcdn.net/hphotos-ak-snc6/ "297962_1190xxxxx203889_104xxxxx723_n.jpg"

Như bạn thấy đấy, tôi đã đặt tên hình ảnh chính xác sau khi '/ '

Xóa dấu ngoặc kép và mở liên kết. Bạn sẽ nhận được hình ảnh kích thước đầy đủ.

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