2011-01-11 9 views
8

Tôi sử dụng php sdk trên ứng dụng facebook của mình và yêu cầu quyền mở rộng yêu cầu. tôi có thể nhận được tất cả trạng thái cập nhật từ người dùng sử dụng ứng dụng của tôi từ api gọiCách nhận nguồn cấp dữ liệu của tất cả bạn bè từ Facebook Graph API

$statuses = $facebook->api('/me/statuses?limit=0');

Nhưng khi tôi sử dụng phương pháp tương tự với một người bạn của người dùng này.

$friendStatuses = $facebook->api('/'.$user_id.'/statuses?limit=0');

Tôi nhận được một mảng trống. Tôi đã cố gắng không sử dụng "? Limit = 0" nhưng kết quả vẫn như cũ.

Tôi cũng cố gắng sử dụng

$friendFeed = $facebook->api('/'.$user_id.'/feed?limit=0');

và có một số thức ăn từ người dùng nhưng không phải tất cả. Ngay cả khi tôi thay đổi "? Limit = 0" thành "limit = 1000" nhưng nguồn cấp dữ liệu tôi nhận được là 500 mục nhưng người dùng đó có nhiều nguồn cấp dữ liệu hơn mức đó.

Công việc của tôi là nhằm thu thập trạng thái của người dùng và bạn bè và phân nhóm chúng.

+0

có thể có liên quan: http://stackoverflow.com/questions/4622096/facebook-graph-api-feeds-missing-in-json- response/ – ifaour

Trả lời

4

Cách thích hợp để có được thức ăn bạn của của người dùng là ví dụ cuối cùng bạn sử dụng:

$friendFeed = $facebook->api("/{$user_id}/feed?limit=0"); 

Nếu bạn đang nhận được một số mục thức ăn chăn nuôi, nhưng không phải tất cả những người bạn đang mong đợi, có thể bạn không có quyền phù hợp. Quyền read_stream để xem các bài đăng ngoài công khai, vì vậy, hãy thử kiểm tra kỹ xem bạn có quyền read_stream hay không. Bạn có thể kiểm tra bằng cách chạy các truy vấn FQL:

SELECT read_stream FROM permissions WHERE uid = me() 

Tôi không chắc chắn 100% làm thế nào bạn sẽ làm điều đó với SDK bạn đang sử dụng, nhưng nó có lẽ sẽ là:

$readStream = $facebook->api("/method/fql.query?query=SELECT+read_stream+FROM+permissions+WHERE+uid+=+me()"); 

Chúc may mắn !


Bạn có thể đọc thêm về cách chạy truy vấn FQL here.
Bạn có thể đọc thêm về bảng quyền here.
Bạn có thể đọc thêm về biểu đồ Đối tượng người dùng của api here.

+0

Tôi cố gắng truy vấn quyền read_stream và nhận "[read_stream] => 1" có nghĩa là tôi đã yêu cầu sự cho phép thích hợp. – naokikun

+0

Lưu ý phiên bản: Kể từ năm 2016 (Graph API v2.5), 'limit = 0' sẽ trả về kết quả 0 và quyền' read_stream' được thay thế bằng 'read_posts' – Raptor

0
$num = 0; 
$result = $facebook->api(array('method' => 'fql.query', 'query' => 'SELECT uid2 FROM friend WHERE uid1=me()')); 
foreach($result as $photo){ 
$num++; 
} 

sử dụng này, nó là nhanh hơn để đếm bạn bè

+0

Tôi tin rằng poster gốc đã cố gắng làm nhiều hơn rồi đếm bạn bè. –

+1

FQL không được dùng nữa nên không sử dụng fql. –