2011-02-20 34 views
23

Cách tốt nhất để có được TẤT CẢ ảnh hồ sơ từ một người dùng nhất định là gì? Tôi cần những quyền gì?Facebook API: Nhận tất cả ảnh tiểu sử

Tôi biết tôi có thể truy cập ảnh hồ sơ chính bằng cách sử dụng https://graph.facebook.com/[uid]/picture, nhưng làm cách nào để có toàn bộ album?

Trả lời

51

làm cách nào để tải toàn bộ album?

Bạn cần https://graph.facebook.com/[uid]/albums?access_token=[AUTH_TOKEN] để nhận mảng JSON của tất cả các album của người dùng.

Bạn sẽ nhận được ba điều quan trọng từ đây id - id album, name - tên album và type - loại album.

Tôi cần những quyền nào?

Việc cho phép yêu cầu là user_photossee here

cách tốt nhất để có được hình ảnh ALL hồ sơ từ một người dùng nhất định là gì?

Ảnh hồ sơ nằm trong album "Ảnh hồ sơ". Để truy cập vào album tiểu sử, bạn cần phải xem xét mảng album (như đã đề cập trước đó), lặp qua tập kết quả JSON, cho đến khi bạn nhận được album có tên = Profile Pictures và nhập = profile. Nhận id của đối tượng này. Đây là anbom ảnh tiểu sử.

Giờ đây, bạn có thể truy cập nó tương tự như bạn truy cập vào bất kỳ album nào khác. Tức là, https://graph.facebook.com/[ALBUM_ID]/photos?access_token=[AUTH_TOKEN] điều này sẽ liệt kê tất cả hình ảnh hồ sơ của người dùng đã từng tải lên.

Hy vọng điều này sẽ hữu ích.

tham khảo: http://developers.facebook.com/docs/reference/api/

+1

Có thể thay đổi tên của album ảnh tiểu sử không? Có đáng tin cậy khi tin tưởng tên album? –

+2

dựa vào 'loại'. không thể chỉnh sửa tên cho album 'profile pictures' AFAIK. – Nishant

+2

@Nantant, nếu có nhiều ảnh tiểu sử (ví dụ: 100 ảnh), bạn sẽ nhận được TẤT CẢ chúng bằng cách sử dụng 'https://graph.facebook.com/ [ALBUM_ID]/photos? Access_token = [AUTH_TOKEN]' ? Bởi vì nó hiện đang dừng lại sau khi hình ảnh thứ 25 – NateHill

0

Bạn sử dụng phân trang và bù đắp để có được tới 5 hoặc thay đổi giới hạn để bất cứ điều gì.

9

Bạn có thể chuyển "giới hạn = 0" để tránh phân trang hoàn toàn và bạn nhận được tất cả ảnh trong một cuộc gọi.

5

Để có được tất cả ảnh tiểu sử, trước hết bạn cần tải danh sách tất cả album, nhưng nếu tổng số album trên 24, bạn sẽ không nhận được phần còn lại và có thể bạn sẽ không nhận được album ảnh hồ sơ. Đối với điều này, bạn cần phải vượt qua limit=0 để nhận URL album.

Đây là mã ví dụ:

$tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=$yourAppId&redirect_uri=$yourRedirectUrl 
       &client_secret=$yourAppSecret&code={$_GET["code"]}"; 

$accessToken = file_get_contents($tokenUrl); 

$extAlbumUrl = "https://graph.facebook.com/me/albums?$accessToken&limit=0"; 

$albums = json_decode(file_get_contents($extAlbumUrl)); 
1

Có một số cách để có được những album của người sử dụng công cộng mà không bất kỳ mối quan hệ. Ví dụ: tôi không phải là bạn của người dùng "foo" nhưng tôi muốn ảnh của anh ấy. Tôi có thể xem ảnh của anh ấy trong giao diện người dùng của Facebook nhưng tôi không thể xem qua biểu đồ.

Tôi đang sử dụng trình khám phá từ facebook với tất cả các quyền và tôi luôn nhận được một JSON rỗng. Có một số cách để có được những bức ảnh mà tôi thấy trong giao diện người dùng? Những ảnh này là công khai.

Bất dụ:

UI từ facebook: https://www.facebook.com/sonia.milan.9/photos Bạn có thể xem tất cả ảnh của mình.

Sử dụng graph API: sonia.milan.9/album Return:

{ 
    "data": [ 
    ] 
} 
+0

Xin lỗi, nội dung này hiện không có sẵn tại liên kết –

1

Chúng tôi sẽ không nhận được trực tiếp tất cả các bức ảnh cá nhân đầu tiên chúng ta cần phải lấy tất cả các album sử dụng bên dưới URL

https://graph.facebook.com/v2.10/ 472802896428726/albums?access_token={access_token}&fields=id,name,cover_photo,count,from,type

Mảng lọc sử dụng điều kiện trong đó loại = tiểu sử và tên = Hồ sơ Hình ảnh rồi sử dụng id album để tải ảnh bằng cách sử dụng bên dưới URL

https://graph.facebook.com/v2.10/ 124683854573967/photos?access_token={access_token}&fields=id,source

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