How to get all comments from a post on Facebook?

Bạn đang tổ chức một mini game hay event trên facebook, bạn băn khoăn làm sao để lấy tất cả bình luận của một bài đăng bất kỳ trên Facebook (tất nhiên user của bạn phải là người sở hữu bài đăng đó)?

Sau đây là ví dụ thực tế lấy tất comments từ một bài đăng trên group, chọn ra 3 comments ngẫu nhiên.

Mình ví dụ với bài đăng này của mình:

https://www.facebook.com/groups/625230697658922/permalink/1183010731880913/

Bước 1: làm việc với API của Facebook

Trên đó chúng ta có thể xác định ID của bài đăng là: 1183010731880913 – Để xem dãy số mình lấy có phải là ID của một bài đăng hay không thì chúng ta thử gõ fb.com/so_ID nếu đúng thì nó sẽ trỏ về bài đăng đó.

Facebook cung cấp sẵn API cho chúng ta làm việc này (tham khảo tại đây) khi đó link API với ID trên sẽ là

https://graph.facebook.com/v3.2/1183010731880913/comments?access_token=YOUR_ACCESS_TOKEN

Nếu để như trên, mặc định sẽ lấy cả reply comment, nếu chúng ta chỉ cần top comment thì chúng ta thêm tham số filter=toplevel

Đồng thời, mặc định API chỉ show 25 comments, nên chúng ta phải thêm tham số filter=xxx (thay xxx bằng số comments của post đó hoặc một số lớn hơn) để API có thể lấy hết tất cả comments.

Khi đó, link get API sẽ là: https://graph.facebook.com/v3.2/1183010731880913/comments?filter=toplevel&limit=1000&access_token=YOUR_ACCESS_TOKEN

Làm sao để có YOUR_ACCESS_TOKEN?

Truy cập trang: https://developers.facebook.com/tools/explorer/

Bạn phải đăng ký account facebook của bạn thành developer, sau đó chọn Get Token (1) > Get user access token > chọn như hình dưới > Get access token (2). Sau khi lưu lại thì bạn sẽ thấy chuỗi ký tự loằng ngoằng trong ô Access Token chính là nó.

Bước 2: Đưa vào PHP xử lý

Tạo file get_comments.php rồi copy đoạn code bên dưới vào.

<?php
$url_get = "https://graph.facebook.com/v3.2/1183010731880913/comments?limit=1000&filter=toplevel&access_token=YOUR_ACCESS_TOKEN";
$c = curl_init($url_get);
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
$json_string = curl_exec($c);
$array = json_decode($json_string, true);
$array_data = $array['data'];
$array_key = array_keys($array_data);
$count = count($array_data);
echo 'Total: ' . $count . ' comments.<br>';
for ($i=0; $i<3; $i++) {
$n = rand(0, $count-1);
$key = $array_key[$n];
$crawl = $array_data[$key];
echo 'ID: ' . $crawl['id'] . '<br>';
echo 'Message: ' . $crawl['message'] . '<br>';
}
?>

Nhớ thay $url_get bằng link API của bạn đã có như bước 1.

Thay $i<3 với số comments mà bạn muốn xuất ra ngẫu nhiên, ở đây mình muốn xuất ra 3 comments nên để là 3.

Chạy file get_comments.php, thế là xong!

À quên, chưa xong, làm sao để xác định comment được chọn ngẫu nhiên ra đó là của ai để trao giải?

Truy cập fb.com/ID (thay ID bằng số ID của comment vừa nhận được ở trên), facebook sẽ show đúng comment đó – Finish!

Trong trường hợp bạn không làm được, có thể sử dụng trang mình làm sẵn đây, chỉ việc điền thông tin vào để lấy thôi nhé get_comments.php

Cùng chuyên mục