Xóa thành viên khỏi nhóm WhatsApp qua API: ID và xác minh kết quả
Để xóa một thành viên hiện tại khỏi nhóm WhatsApp qua UnifyPort, gửi POST /v1/accounts/{account_id}/groups/members với group_id, action: "remove" và LID của thành viên trong member_id. Lấy LID từ peer_id do danh sách thành viên trả về. Mỗi yêu cầu chỉ nhắm đến một người. Lưu phản hồi rồi đọc lại danh sách; một dòng biến mất khỏi giao diện không phải bằng chứng rằng thành viên đã bị xóa.
Điểm chính
- Xóa thành viên, gỡ quyền quản trị, từ chối yêu cầu tham gia và để tài khoản kết nối tự rời nhóm là những thao tác khác nhau.
- Chọn đồng thời tài khoản nhắn tin, nhóm và thành viên. Không tạo LID từ số điện thoại.
- Cần xem xét và xác nhận quyết định xóa, không tự động xóa chỉ vì tên hiển thị lạ.
- Hết thời gian chờ có nghĩa là chưa rõ kết quả, không phải được phép gửi lệnh xóa liên tục.
Chọn thao tác theo đúng mục đích
Hướng dẫn quản lý thành viên chính thức của WhatsApp mô tả việc chọn một người cụ thể trong thông tin nhóm rồi xác nhận xóa. Giao diện dùng API cũng nên giữ bước chọn đối tượng và xác nhận rõ ràng, thay vì giấu thao tác có tác động lớn sau nút chung chung như “Dọn dẹp”.
| Mục đích | Thao tác phù hợp |
|---|---|
| Xóa người đang là thành viên | Thao tác quản lý thành viên remove |
| Giữ người đó trong nhóm nhưng gỡ quyền quản trị | Thao tác riêng demote |
| Từ chối người chưa vào nhóm | Từ chối yêu cầu đang chờ |
| Để tài khoản kết nối rời nhóm | Rời nhóm |
| Chỉ ẩn một dòng trong ứng dụng của bạn | Thay đổi giao diện cục bộ, không thay đổi thành viên |
Để gỡ quyền, xem hướng dẫn thay đổi vai trò quản trị. Với người chưa tham gia, dùng hàng đợi duyệt yêu cầu vào nhóm. Các luồng này không nên dùng chung một nút “Xóa” có ý nghĩa mơ hồ.
Màn hình xác nhận cần hiển thị gì?
Trước khi bật thao tác xóa, gọi Liệt kê thành viên hội thoại trong tài khoản đã chọn, truyền ID nhóm vào conversation_id và đặt type=group. Tiếp tục phân trang theo data.has_more và data.next_cursor cho đến khi hoàn tất việc kiểm tra cần thiết. Không thấy một người ở trang đầu không có nghĩa là người đó không ở trong nhóm.
Giữ lại peer_id, display_name và role được trả về. Các vai trò trong tài liệu là member, admin và superadmin; vai trò cuối là chủ sở hữu hoặc người tạo nhóm. Tên hiển thị giúp người vận hành nhận ra đối tượng, nhưng không phải mã định danh để gửi lệnh.
Sau đây là biện pháp bảo vệ được đề xuất cho ứng dụng, không phải yêu cầu API bổ sung:
- Hiển thị tài khoản kết nối, nhóm cụ thể và thành viên cùng lúc trước khi xác nhận.
- Kiểm tra quyền của người vận hành trong ứng dụng và quyền quản lý nhóm của tài khoản kết nối. Có API Key không đồng nghĩa với có quyền quản trị nhóm.
- Loại
superadmin, chính tài khoản kết nối và đối tượng chưa xác minh danh tính khỏi luồng xóa thành viên thông thường; chuyển sang xem xét riêng hoặc thao tác thích hợp. - Đọc lại dữ liệu lựa chọn đã cũ và chặn các yêu cầu xóa đồng thời cho cùng tài khoản, nhóm và thành viên ở phía máy chủ.
Nếu chưa đối chiếu được mục tiêu với WhatsApp LID được trả về, hãy dừng lại. Không thay bằng số điện thoại, tên hiển thị hoặc ID người tham gia có định dạng khác từ sự kiện.
Một thành viên đã xác nhận, một yêu cầu
Tài liệu Quản lý thành viên nhóm nhận member_id đơn lẻ, không phải mảng member_ids dùng để quyết định các yêu cầu tham gia. UnifyPort cung cấp giao diện không chính thức. Bảng hỗ trợ thao tác theo nhà cung cấp hiện chỉ áp dụng thao tác này cho whatsapp, không áp dụng cho LINE, Telegram hay whatsapp-protocol. Không suy rộng khả năng này sang Zalo chỉ vì ứng dụng dùng chung giao diện quản lý.
Ví dụ JavaScript sau chỉ tạo nội dung yêu cầu. Truyền ID nhóm đã xác nhận và bản ghi được chọn từ danh sách thành viên. Đoạn mã không kiểm tra quyền và không gửi yêu cầu mạng.
function removalBody(groupId, selectedMember) {
if (!groupId || !/^\d+@lid$/.test(selectedMember?.peer_id ?? '')) {
throw new Error('Select a group and a returned WhatsApp member LID');
}
if (!['member', 'admin'].includes(selectedMember.role)) {
throw new Error('This target requires separate review');
}
return {
group_id: groupId,
action: 'remove',
member_id: selectedMember.peer_id
};
}
Điều kiện vai trò là chính sách an toàn cục bộ. Kiểm tra định dạng LID không chứng minh danh tính hay quyền hạn. Gửi JSON từ máy chủ đến endpoint nêu trên với X-Api-Key và Content-Type: application/json; không đưa khóa vào trình duyệt hoặc nhật ký. Tài liệu không định nghĩa giao dịch xóa nhiều người cùng lúc: dù giao diện cho phép chọn hàng loạt, hãy theo dõi kết quả riêng cho từng người đã được duyệt.
Đánh giá bằng chứng, không dựa vào hiệu ứng giao diện
Tách biệt ý định của người vận hành, kết quả HTTP và trạng thái thành viên quan sát được:
| Bằng chứng | Điều ứng dụng có thể thông báo |
|---|---|
200 OK với data.ok: true | API đã trả về thành công; cần làm mới danh sách thành viên |
| Đọc danh sách thành công, hoàn tất và không thấy LID đã chọn | Không quan sát thấy người đó trong lần đọc này; ghi lại thời điểm |
| Đọc danh sách thất bại hoặc chưa hoàn tất | Việc xác minh vẫn chưa được giải quyết |
| Yêu cầu thay đổi hết thời gian chờ hoặc phản hồi không đọc được | Chưa rõ kết quả; kiểm tra trước khi ghi tiếp |
Sự kiện group.updated được tài liệu mô tả có thể chứa kind: "member_removed" cùng members[] trong data.changes[]. Dùng nó làm tín hiệu đối chiếu lại trạng thái, không coi là biên nhận riêng cho từng yêu cầu được đảm bảo sẽ đến. Xác minh chữ ký theo quy tắc phân phối webhook trước khi tin sự kiện. ID người tham gia trong sự kiện cũng chưa chắc dùng trực tiếp được cho yêu cầu quản lý thành viên tiếp theo.
Lưu request_id nếu có để chẩn đoán, nhưng không dùng nó làm khóa chống thực thi trùng lặp. Khi kết quả chưa rõ, đọc thành viên hiện tại và yêu cầu xem xét lại trước một thay đổi khác. Tự động gửi add để bù lại là quyết định mới về tư cách thành viên, không phải cơ chế hoàn tác được bảo đảm.
Câu hỏi thường gặp
Có dùng số điện thoại từ yêu cầu tạo nhóm được không?
Không. Thao tác này yêu cầu WhatsApp LID từ peer_id trong danh sách thành viên. Thành viên ban đầu khi tạo nhóm dùng quy tắc định danh khác.
Xóa thành viên có đồng thời xóa tin nhắn đã lưu hoặc cấm tham gia lại vĩnh viễn không?
Không nên cam kết những điều đó dựa trên API này. Phạm vi của nó là quản lý thành viên, không phải xóa lịch sử hoặc chính sách chặn tham gia vĩnh viễn. Hãy xử lý riêng việc lưu giữ dữ liệu và quyết định tiếp nhận trong tương lai.
Cần thử nghiệm gì trước khi bật tính năng?
Dùng tài khoản do bạn kiểm soát để thử tên trùng nhau, mục tiêu nằm ở trang sau, lựa chọn đã cũ, thiếu quyền, mất phản hồi và lỗi đọc lại để xác minh. Đây là đề xuất kiểm thử, không phải kết quả đã thực hiện.
Bước tiếp theo và nguồn tham khảo
Trước tiên xây dựng bước chọn và xác nhận dựa trên Liệt kê thành viên hội thoại, sau đó kết nối nút xóa với Quản lý thành viên nhóm.
Nguồn được đối chiếu ngày 2026-11-01:
Biến tích hợp nhắn tin thành một pipeline sản phẩm ổn định.
Bắt đầu bằng cách gửi qua một API, rồi đưa mọi tin nhắn inbound trở lại hệ thống kinh doanh bằng sự kiện chuẩn.