Tạo bot – Tài liệu – Meta for Developers

Bot trong đoạn chat

Mặc dù trong nhóm, bot có thể sử dụng và chia sẻ thông tin trong một nhóm người theo cách không đồng bộ, bot trong đoạn chat rất phù hợp để tương tác trực tiếp trong thời gian thực với một người hoặc một nhóm người đã xác định.

Ví dụ: một bot chat có thể được dùng để gửi lời nhắc hoặc thông báo quan trọng cho ai đó dựa trên một sự kiện sắp tới như cuộc phỏng vấn hoặc cuộc họp. Các bot work chat cũng có thể được dùng để tương tác với người dùng trong cuộc trò chuyện và thực hiện hành động tiếp theo dựa trên phản hồi nhận được.

Mô hình tương tác này dựa trên các khái niệm tương tự dùng trong Nền tảng Messenger. Do đó, các bot work chat có thể sử dụng những tính năng như menu cố định, tin trả lời nhanh và mẫu để làm phong phú trải nghiệm người dùng.

Bot chỉ có thể trả lời một đoạn Chat mà bot đó là thành viên (đoạn chat riêng hoặc đoạn chat nhóm). Ngoài ra, bot phải có quyền Nhắn tin cho mọi thành viên.

Đoạn chat giữa bot và người dùng

Khi có quyền Nhắn tin cho mọi thành viên, bot sẽ được phép nhắn tin trực tiếp cho bất kỳ người nào trên Workplace thông qua địa chỉ email hoặc ID Workplace của họ qua API Gửi trên Messenger.

Bot trong menu đề xuất tin nhắn mới

Quyền Nhắn tin cho mọi thành viên cũng cho phép bot của bạn hiển thị trong menu đề xuất trên các giao diện Chat trên Workplace.

Bot trong menu đề xuất tin nhắn mới

Bằng cách đăng ký webhook Tin nhắn trên trang, bot của bạn cũng sẽ nhận được thông báo khi người dùng nhắn tin cho bot và bạn có thể tạo cuộc trò chuyện bằng cách kết hợp gửi và nhận.

Cuộc trò chuyện giữa bot và người dùng

Đoạn chat giữa bot và nhóm

Bot cũng có thể tạo, quản lý và được thêm vào đoạn chat nhóm gồm nhiều người. Bot có thể tạo chuỗi trò chuyện nhóm mới bằng cách chỉ định danh sách người nhận và có thể đổi tên chuỗi trò chuyện để tạo cuộc thảo luận trò chuyện về các chủ đề cụ thể với những người cụ thể.

Một chuỗi trò chuyện được đặt tên với những người cụ thể do bot tạo.

Bật bot cho đoạn chat nhóm

Để cho phép bot tạo đoạn chat nhóm với người dùng Workplace, hãy mở bảng Quyền của hộp thoại Chỉnh sửa tích hợp tùy chỉnh rồi chọn hộp có nhãn Cho phép tiện ích tích hợp này hoạt động trong nhóm chat.

Bật bot tích hợp tùy chỉnh để hỗ trợ chat nhóm.

Bằng cách bật hỗ trợ chat nhóm, bot của bạn sẽ hiển thị trong menu đề xuất Thêm người trong đoạn chat nhóm hiện tại. Sau đó, bot sẽ nhận được webhook cho mỗi tin nhắn gửi bởi những người trong chuỗi trò chuyện đó và có thể trả lời chuỗi trò chuyện đó bằng cách sử dụng thread ID.

Thêm bot vào đoạn chat nhóm, sau đó @nhắc đến bot đó

Tạo chuỗi trò chuyện mới được đặt tên

Để tạo một chuỗi trò chuyện mới với những người nhận cụ thể, hãy gửi yêu cầu POST đến điểm cuối /me/messages chỉ định mảng recipient IDs và phần tải dữ liệu message ban đầu như sau:

POST /me/messages
{
  "recipient": {
    "ids": [<user_ids>]
  },
  "message": <message_payload>
}

Bạn sẽ nhận được phần tải dữ liệu phản hồi có chứa thread ID. Bạn có thể sử dụng phần tải dữ liệu này cho các tin nhắn tiếp theo.

Nếu bạn sử dụng lại cùng một điểm cuối với cùng danh sách người nhận, một chuỗi trò chuyện mới sẽ được tạo. Để gửi tin nhắn tiếp theo cho chuỗi trò chuyện đã tạo, hãy gửi yêu cầu POST đến điểm cuối /me/messages bằng cách sử dụng thread_id trong phần tải dữ liệu recipient, như sau:

POST /me/messages
{
  "recipient": {
    "thread_key": <thread_id>
  },
  "message": <message_payload>
}

Để đổi tên chuỗi trò chuyện do bot của bạn tạo, hãy gửi yêu cầu POST đến cạnh /{thread}/threadname, như sau:

POST /t_<thread_id>/threadname
{
  "name": "new name"
}

Lưu ý là bạn cần thêm “t_” vào trước thread_id trong đường dẫn cạnh.

Bạn cũng có thể lấy danh sách người tham gia chuỗi trò chuyện bằng cách gửi yêu cầu GET trên cạnh /{thread}/?fields=participants, như sau:

GET /t_<thread_id>/?fields=participants

Bạn cũng có thể thêm và xóa người tham gia khỏi chuỗi trò chuyện bằng cách gửi yêu cầu POST hoặc DELETE trên cạnh /{thread}/participants, như sau:

POST t_<thread_id>/participants
{
  "to": [<user_ids>]
}

DELETE t_<thread_id>/participants
{
  "to": [<user_ids>]
}