akng là dịch vụ thuê ngoài đã dùng trước đây. Họ ngừng trả số liệu Facebook ngày 03/08/2026 — đó là lý do getdata ra đời. Kiểm tra lại 06/08/2026: akng đã chữa xong, nên giữ họ lại làm lưới đỡ cho những reel getdata chưa xử lý được.
getdata tự lấy trọn akng phải gánh hộ cả hai đều chịu
Đây là số liệu duy nhất được ghi ra đĩa nên không mất khi máy chủ khởi động lại — các con số khác trên trang đều tính từ lần khởi động gần nhất. Rê chuột lên cột để xem số cụ thể.
Cột Chìa cho biết nơi đó cầm chìa riêng của mình, hay còn dùng chìa cũ của akng — chìa cũ vẫn chạy nhưng hết hạn 31/10/2026, trước ngày đó phải đổi sang chìa riêng. Cột Đường dùng cho biết nơi đó lấy số liệu reel, hay chỉ nhờ dịch link chia sẻ ra mã reel.
| Nơi gọi | Chìa | Đường dùng | Số lượt | Thành công | Nhờ akng | Thiếu dữ liệu | Bị chặn | Reel đã xoá | Trung bình | Lần cuối |
|---|
Gộp theo nguyên nhân gốc rễ. Nhìn bảng này trước để biết phần lớn hỏng vì cái gì, rồi mới xuống danh sách chi tiết bên dưới. Sổ ghi ra đĩa nên khởi động lại không mất.
| Tại sao | Nguyên nhân gốc rễ | Nên làm gì | Số reel | akng cứu được |
|---|
Bấm vào link để mở thẳng reel trên Facebook — xem tận mắt là cách nhanh nhất để biết reel còn sống hay đã bị xoá. Cột Nên làm gì xem ở bảng trên, tra theo cùng cột Tại sao.
| Link reel | Tại sao | Nguyên nhân gốc rễ | Kết cục | Số lần | Lần cuối | Nơi gọi |
|---|
getdata giữ nguyên hình dạng trả về của akng, nên nơi đang dùng chỉ cần đổi địa chỉ:
Cũ: https://api.akng.io.vn/graph/v19.0
Mới: https://getdata.cungvedich.vn/graph/v19.0
Chìa khoá giữ nguyên — getdata nhận luôn chìa khoá cũ của akng đến hết 31/10/2026.
/graph/{phiên bản}/{mã reel}Đường chính, thay thẳng cho akng. Cần access_token.
| Tham số | Bắt buộc | Nghĩa là gì |
|---|---|---|
access_token | Có | Chìa khoá. Truyền qua địa chỉ, y như akng |
fields | Không | Xin những trường nào. Bỏ trống là lấy tất cả. Có xin views hay không rất đáng lưu ý: xin thì phải hỏi Facebook hai lần (chậm gấp đôi), không xin thì chỉ một lần |
owner_id | Không | Riêng của getdata. Biết trước mã chủ thì hai lượt hỏi Facebook chạy song song, nhanh hơn hẳn |
allow_missing_views | Không | Riêng của getdata, chỉ dành cho việc quét bù. Đặt 1 để chấp nhận reel không lấy được lượt xem, các trường khác vẫn giữ nguyên yêu cầu |
curl "https://getdata.cungvedich.vn/graph/v19.0/924175540009026?fields=id,views,from,privacy&access_token=CHÌA_KHOÁ"
Trả về:
{
"success": true,
"message": "Request successful.",
"data": {
"id": "924175540009026",
"created_time": "2026-08-01T11:49:37+0000",
"from": { "id": "100091330290184", "name": "Linda Trần" },
"views": 257,
"length": 15,
"privacy": { "value": "EVERYONE" },
"likes": { "data": [], "summary": { "total_count": 5 } },
"reactions": { "data": [], "summary": { "total_count": 5 } },
"comments": { "data": [], "summary": { "total_count": 9 } }
}
}
/api/thu?url=…Thử nhanh: nhận link reel đủ kiểu (kể cả link chia sẻ /share/r/…) hoặc chỉ mã số, trả kết quả đã dọn sẵn cho người đọc. Đây là đường mà tab "Thử dữ liệu" dùng.
/healthKiểm tra dịch vụ còn sống. Không cần chìa khoá — để máy giám sát gọi được.
/statsSố liệu vận hành, gồm cả phần akng (tỷ lệ phải nhờ đỡ) và that_bai
(đếm reel không lấy được). Cần chìa khoá quản trị, hoặc đã đăng nhập vào trang này.
/api/that-baiDanh sách reel không lấy được kèm lý do gốc rễ — chính là thứ hiện ở tab
"Link không lấy được". Thêm ?loc=hong để chỉ lấy nhóm hỏng thật,
?loc=akng-cuu để lấy nhóm akng đỡ được.
/api/akngHỏi thẳng akng một reel mốc để biết lưới an toàn còn dùng được không. Trả
song (gọi được không) và duSoLieu (có trả đủ số liệu không) —
tách hai cái vì akng từng "gọi được" mà ruột rỗng.
Khi getdata không lấy đủ, dịch vụ tự hỏi akng rồi ghép hai nguồn — getdata luôn thắng, akng chỉ bù vào chỗ trống. Bên gọi không phải làm gì cả, kết quả trả về vẫn đúng hình dạng cũ.
Muốn biết một kết quả đến từ đâu thì xem data._getdata.nguon:
| Giá trị | Nghĩa là gì |
|---|---|
getdata | Tự lấy được hết. Đây là trạng thái mong muốn |
ghep | getdata lấy phần lớn, akng bù vài trường — xem _getdata.akng_bu |
akng | getdata không đọc được gì, akng gánh toàn bộ |
Bản ghép vẫn phải qua đúng chốt chặn như thường: thiếu trường bắt buộc là báo lỗi,
akng không được miễn kiểm tra. Tắt hẳn đường này bằng AKNG_FALLBACK=false.
Nguyên tắc gốc: thà báo lỗi ầm ĩ còn hơn trả về số 0 im lặng. Số 0 là kẻ nói dối nguy hiểm nhất — nó trông giống dữ liệu thật, nó ghi đè được lên số thật, và không có gì báo động. Nên khi thiếu dữ liệu, getdata không bao giờ nói "thành công".
| Mã lỗi | Mã HTTP | Nghĩa là gì | Nên làm gì |
|---|---|---|---|
parse_incomplete | 200 | Đọc được trang nhưng thiếu trường bắt buộc | Nếu xảy ra hàng loạt thì Facebook vừa đổi cấu trúc trang — báo người kỹ thuật |
views_unavailable | 200 | Không lấy được lượt xem (trang xem của reel không trả play_count — hiếm; hay gặp ở video thuộc Page) | Vài ca lẻ thì bình thường. Quét bù thì thêm allow_missing_views=1 |
views_wrong_kind | 200 | Lượt xem không phải loại tổng | Từ chối là đúng — hai loại chênh tới 2,8 lần, lẫn là hỏng hết số liệu lịch sử |
fb_unavailable | 200 | Reel không tồn tại, đã xoá, hoặc không công khai | Thử lại cũng vậy. Đừng thử lại |
fb_blocked | 429 | Facebook đang hãm nhịp đọc | Lùi lại vài phút rồi thử lại |
fb_timeout | 502 | Nguồn ngậm miệng quá lâu, đã cắt ở trần cứng | Thử lại được ngay — không phải bị chặn |
bad_token | 401 | Chìa khoá sai hoặc hết hạn | Kiểm tra lại chìa khoá |
| Chuyện | Thực tế |
|---|---|
| Hai loại lượt xem | views luôn là loại tổng. Có một loại khác gọi là "lượt xem trên bài", chênh tới 2,8 lần. getdata thà từ chối trả còn hơn trả nhầm loại |
| Số bình luận | getdata trả tổng thật. akng chỉ đếm được tối đa 5 vì nó lấy 5 bình luận rồi đếm mảng |
| Lượt thích và cảm xúc | Trang công khai của Facebook không tách hai loại, nên hai con số này bằng nhau |
| Lượt chia sẻ | Không lấy được. akng cũng không có |
| Đường dẫn ảnh bìa và video | Facebook cho hết hạn sau vài giờ đến vài tháng. Cần giữ lâu thì phải tải về máy mình |
Mỗi nơi dùng một chìa riêng — để biết ai gọi bao nhiêu, và cắt được riêng một nơi khi cần mà không ảnh hưởng nơi khác. Trang này chỉ hiện 8 ký tự đầu của chìa, đủ để đối chiếu chứ không đủ để dùng.
| Nơi dùng | Chìa | Loại | Hạn | Số lượt gọi | Lần cuối |
|---|
Chìa nằm trong tệp cấu hình /opt/getdata/.env trên máy chủ, không nằm trong
mã nguồn — nên đổi chìa không phải sửa mã, không phải triển khai lại dịch vụ nào khác.
Nối thêm vào GETDATA_TOKENS, dạng chìa:nhãn, cách nhau bằng dấu phẩy.
Đặt chìa theo mẫu <tên-dự-án>-<32 ký tự ngẫu nhiên> để nhìn đầu chuỗi là biết của ai.
GETDATA_TOKENS=mlm-xxxx:mlm,content-yyyy:content_auto,duan3-zzzz:du_an_3
Rồi khởi động lại container: docker compose -f /opt/getdata/docker-compose.yml up -d
Xoá đoạn chìa:nhãn của nơi đó khỏi GETDATA_TOKENS rồi khởi động lại.
Nơi đó lập tức nhận lỗi "chìa không hợp lệ", các nơi khác không bị ảnh hưởng.
GETDATA_ADMIN_TOKEN chỉ để xem số liệu vận hành. Đừng đưa cho dự án dùng lấy dữ liệu
— lộ ra là người ngoài xem được toàn bộ tình hình.
Bật/tắt bằng ALLOW_LEGACY_AKNG_TOKEN, hạn đặt ở LEGACY_TOKEN_EXPIRES.
Quá hạn là tự động bị từ chối — nên nơi nào còn dùng chìa cũ phải đổi trước ngày đó.
Dán link reel Facebook (kể cả link chia sẻ dạng /share/r/…) hoặc mã số reel.
Dành cho lúc cần xem đúng thứ mà hệ thống Yody nhận được — trả JSON thô, không dọn dẹp.
Nhận cả link dán thẳng (tự bóc mã số). Trần 1.000 mã một mẻ, chạy nền tuần tự nghỉ 1,5 giây giữa mỗi video. Lượt quét xếp SAU lượt của app đại lý và (khi đã cấu hình proxy) đi qua proxy riêng — không ảnh hưởng đường đang chạy. Tiến độ ghi ra đĩa: khởi động lại máy chủ không mất mẻ, bấm Chạy tiếp là đi tiếp đúng chỗ dở.