Tôi có câu hỏi về cách Facebook giới hạn các cuộc gọi api của bạn.Giới hạn API 5000 bài đăng của Facebook
Hướng tới phía dưới của bài viết này: http://developers.facebook.com/blog/post/478/ facebook nói:
Ngoài các giới hạn được đề cập trong tài liệu hướng dẫn cho từng bảng và các kết nối được liệt kê ở trên, nó là hữu ích để biết rằng số lượng tối đa kết quả chúng tôi sẽ tìm nạp trước khi chạy kiểm tra mức hiển thị là 5.000.
Tôi tự hỏi làm thế nào một trang sẽ thông qua dữ liệu công khai như thế này. Ví dụ, hãy Shakira: cô ấy nhiều, nhiều thích trên mỗi bức ảnh mà cô tải lên, gọi api này:
kết thúc lên dừng lại ở 5000 thích.
Một điểm thú vị là, dữ liệu này là tất cả công chúng, tôi không cần phải đăng nhập vào Facebook để xem nó. Tôi biết có chính sách bảo mật trên cách bạn sử dụng dữ liệu, đó không phải là câu hỏi của tôi. Nếu dữ liệu được công khai, dữ liệu này là gì, tại sao chúng ta không thể có được tất cả, và nếu chúng ta có thể, làm thế nào?
Các câu hỏi chính là:
Bạn có thể nhận được nhiều hơn 5000 kết quả cho một cuộc gọi API cụ thể, như trong một ở trên?
Đây có phải là 5000 lượt thích gần đây nhất không? Vì vậy, nếu bạn bắt đầu thu thập dữ liệu trên bài đăng này ngay lập tức và sau đó quay lại sau mỗi 10 phút để tìm kiếm các lượt thích mới, bạn có thể nhận được tất cả dữ liệu với phương pháp ngăn chặn giới hạn 5000 này không?
Đây có phải là giới hạn cho các cuộc gọi API hay chỉ trên số lượng kết quả họ gửi cho một người dùng hoặc trên số lượng kết quả họ gửi lại cho một bài đăng nhất định, v.v.?
Điều này có áp dụng cho các bài đăng, gắn thẻ và nhận xét cũng như phân trang không?
Tôi biết câu hỏi này là một chút mở kết thúc, nhưng tôi đã xem xét tất cả các nơi cho một câu trả lời và nó không được tài liệu. Bất kỳ sự trợ giúp nào cũng tuyệt vời, và tôi nghĩ rất nhiều người có thể tham khảo thông tin này trong tương lai.
UPDATE:
Khi chạy gọi API này:
Bạn nhận lại một kết quả, và do đó đạt giới hạn (cũng ít nhất gần nó). Ai đó đã đề xuất sử dụng FQL và có thể trả lại nhiều hơn. Nhưng tôi đã thử làm điều tương tự trong PHP với FQL và đã trở lại chỉ có 1 hồ sơ.
$select = urlencode("SELECT user_id, object_id, post_id FROM like WHERE post_id='5027904559_10150854808869560' LIMIT 1000 OFFSET 4964");
$fql_query_url = 'https://graph.facebook.com/fql?q=' . $select;
$fql_query_result = file_get_contents($fql_query_url);
$fql_query_obj = json_decode($fql_query_result, true);
Vì vậy, cho đến nay, câu trả lời duy nhất là 'không', bạn luôn bị giới hạn ở 5000 kết quả.Và tôi không nghĩ/biết nếu một access_token cụ thể với một số quyền cụ thể sẽ giúp.
Một cập nhật khác, khi tôi truy cập trang của Shakira và nhấp vào 'x số người như thế này' và bắt đầu cuộn xuống qua danh sách, tôi cũng đạt đến giới hạn. Vì vậy, không chỉ Facebook hạn chế API và trả về FQL, chúng còn hạn chế các trang của riêng chúng.
Tôi muốn biết liệu có ai biết tại sao không? Họ chỉ có 5k trong bộ nhớ cache tại một thời điểm, và họ sẽ không thể xử lý quy mô nếu mọi người đã đánh cơ sở dữ liệu với rất nhiều yêu cầu? Chỉ cần đoán thôi.
Tôi ngạc nhiên ngay cả khi dữ liệu có sẵn công khai, thành thật mà nói. Ít nhất tôi mong đợi điều này chỉ có sẵn cho các nhà phát triển ứng dụng đã đăng ký, và thậm chí sau đó chỉ khi tùy chọn quyền riêng tư của người dùng được thiết lập để cho phép nó cho nhà phát triển cụ thể đó. – halfer
Phải, dữ liệu của mọi người không công khai nhưng Trang người hâm mộ có một số dữ liệu công khai. Giống như Shakira. – chantheman
Hi @chantheman, bạn đã giải quyết vấn đề này/tìm một cách khác? –