📚 Mục lục sách

Ở bài trước, chúng ta đã có một chatbot Ezyvora hoạt động trên website và có thể sử dụng Chat Profile trong EzyChat để xử lý câu hỏi của khách hàng. Tuy nhiên, khách hàng không phải lúc nào cũng truy cập website để đặt câu hỏi. Với nhiều doanh nghiệp, Facebook Page cũng là một điểm chạm quan trọng: khách xem bài viết, tìm hiểu sản phẩm rồi nhắn tin trực tiếp qua Messenger.

Thay vì xây thêm một chatbot riêng cho Facebook, trong bài này chúng ta sẽ kết nối Facebook Messenger với chatbot Ezyvora thông qua EzyOA. Nhờ đó, chatbot đang sử dụng trên website có thể tiếp tục được sử dụng để hỗ trợ khách hàng trên Facebook.

1. Tạo ứng dụng trên Meta for Developers

Để EzyOA có thể kết nối với Facebook Messenger và nhận tin nhắn từ Fanpage, trước tiên chúng ta cần tạo một ứng dụng trên Meta for Developers. Ứng dụng này đóng vai trò trung gian để EzyOA làm việc với các API của Meta. Truy cập Meta for Developers, chọn Ứng dụng của tôi → Tạo ứng dụng. Bạn có thể xem hướng dẫn chi tiết tại đây: EzyOA: Hướng dẫn tích hợp Facebook Messenger vào EzyOA, để hiểu chi tiết hơn về các thông số cấu hình, cách lấy Page Access Token và xử lý các lỗi thường gặp.

Mở Ứng dụng của tôi trên Meta for Developers
Mở Ứng dụng của tôi trên Meta for Developers
Chọn Tạo ứng dụng
Chọn Tạo ứng dụng

Nhập Tên ứng dụng và Email liên hệ, sau đó nhấn Tiếp.

Nhập Tên ứng dụng và Email liên hệ
Nhập Tên ứng dụng và Email liên hệ

Ở bước Trường hợp sử dụng, lựa chọn các trường hợp cần thiết cho quá trình tích hợp, trong đó quan trọng nhất là:

  • Tương tác với khách hàng trên Messenger from Meta để ứng dụng có thể làm việc với tin nhắn Messenger.
  • Quản lý mọi thứ trên Trang để ứng dụng có thể truy cập và làm việc với Fanpage.
Chọn trường hợp sử dụng Messenger from Meta
Chọn trường hợp sử dụng Messenger from Meta
Chọn trường hợp sử dụng Quản lý mọi thứ trên Trang - phần 1
Chọn trường hợp sử dụng Quản lý mọi thứ trên Trang (1/2)
Chọn trường hợp sử dụng Quản lý mọi thứ trên Trang - phần 2
Chọn trường hợp sử dụng Quản lý mọi thứ trên Trang (2/2)

Nếu chưa có hồ sơ doanh nghiệp phù hợp, tại bước Doanh nghiệp có thể chọn Tôi chưa muốn kết nối hồ sơ doanh nghiệp, sau đó tiếp tục qua phần Yêu cầu.

Chọn Tôi chưa muốn kết nối hồ sơ doanh nghiệp
Chọn Tôi chưa muốn kết nối hồ sơ doanh nghiệp
Tiếp tục qua phần Yêu cầu
Tiếp tục qua phần Yêu cầu

Cuối cùng, kiểm tra lại thông tin tại Tổng quan và nhấn Tạo ứng dụng. Sau khi hoàn tất, ứng dụng sẽ xuất hiện trong Meta for Developers cùng các trường hợp sử dụng đã chọn. Đây sẽ là ứng dụng chúng ta sử dụng ở các bước tiếp theo để kết nối Facebook Page → EzyOA → Chatbot.

Kiểm tra lại thông tin và nhấn Tạo ứng dụng
Kiểm tra lại thông tin và nhấn Tạo ứng dụng
Ứng dụng xuất hiện trong Meta for Developers cùng các trường hợp sử dụng
Ứng dụng xuất hiện trong Meta for Developers cùng các trường hợp sử dụng

2. Kết nối ứng dụng Meta với EzyOA

Sau khi tạo ứng dụng trên Meta, bước tiếp theo là đưa thông tin ứng dụng vào EzyOA để thiết lập kết nối với Facebook Messenger. Quay lại EzyPlatform, vào EzyOA → Các dịch vụ OA, mở dịch vụ MESSENGER. Tại đây, sao chép Đường dẫn callback xác thực và sử dụng đường dẫn này để cấu hình URI chuyển hướng OAuth trên Meta.

Sao chép Đường dẫn callback xác thực của dịch vụ MESSENGER
Sao chép Đường dẫn callback xác thực của dịch vụ MESSENGER

Trong Meta for Developers, vào Cài đặt ứng dụng → Thông tin cơ bản để lấy ID ứng dụng và Khóa bí mật của ứng dụng. Đồng thời, tại phần Đăng nhập bằng Facebook → Cài đặt, chúng ta sẽ cần khai báo đường dẫn callback do EzyOA cung cấp.

Lấy ID ứng dụng và Khóa bí mật tại Thông tin cơ bản
Lấy ID ứng dụng và Khóa bí mật tại Thông tin cơ bản
Khai báo đường dẫn callback tại Đăng nhập bằng Facebook - Cài đặt
Khai báo đường dẫn callback tại Đăng nhập bằng Facebook → Cài đặt

Tiếp theo, chỉnh sửa dịch vụ Messenger trên EzyOA và nhập các thông tin tương ứng từ ứng dụng Meta, gồm ID ứng dụng và Khóa bí mật. Sau khi lưu thành công, EzyOA sẽ tạo các thông tin cần thiết cho quá trình xác thực, đồng thời hiển thị nút Lấy access token.

Nhập ID ứng dụng và Khóa bí mật vào dịch vụ Messenger trên EzyOA
Nhập ID ứng dụng và Khóa bí mật vào dịch vụ Messenger trên EzyOA

Nhấn Lấy access token, Meta sẽ mở cửa sổ cấp quyền. Chọn Fanpage muốn kết nối với EzyOA, ví dụ Ezyvora, sau đó nhấn Tiếp tục. Kiểm tra các quyền mà ứng dụng yêu cầu để quản lý Trang, Messenger và webhook, rồi nhấn Lưu.

Chọn Fanpage muốn kết nối với EzyOA
Chọn Fanpage muốn kết nối với EzyOA
Kiểm tra các quyền ứng dụng yêu cầu
Kiểm tra các quyền ứng dụng yêu cầu
Nhấn Lưu để hoàn tất cấp quyền cho Fanpage
Nhấn Lưu để hoàn tất cấp quyền cho Fanpage

Khi Meta hiển thị thông báo tài khoản đã được kết nối với ứng dụng Chatbot Ezyvora, quá trình cấp quyền cho Fanpage đã hoàn tất. Từ đây, EzyOA đã có thể sử dụng kết nối này cho các bước cấu hình Messenger và Chatbot tiếp theo.

3. Thử nghiệm quyền truy cập Messenger trên Meta

Sau khi Fanpage đã được kết nối với ứng dụng, chúng ta cần thử nghiệm các quyền mà EzyOA sẽ sử dụng khi làm việc với Facebook Messenger.

Trong Meta for Developers, quay lại Bảng điều khiển của ứng dụng và chọn Thử nghiệm trường hợp sử dụng.

Chọn Thử nghiệm trường hợp sử dụng trong Bảng điều khiển
Chọn Thử nghiệm trường hợp sử dụng trong Bảng điều khiển

Tại đây, Meta hiển thị các trường hợp sử dụng đã được thêm vào ứng dụng. Với quá trình kết nối Messenger, chúng ta sẽ sử dụng Trình khám phá API Đồ thị để kiểm tra quyền truy cập trước khi tiếp tục cấu hình.

Danh sách các trường hợp sử dụng đã thêm vào ứng dụng
Danh sách các trường hợp sử dụng đã thêm vào ứng dụng

Mở từng trường hợp sử dụng để kiểm tra các quyền API cần thiết. Sau đó nhấn Mở Trình khám phá API Đồ thị.

Kiểm tra quyền API cần thiết của trường hợp sử dụng
Kiểm tra quyền API cần thiết của trường hợp sử dụng
Mở Trình khám phá API Đồ thị
Mở Trình khám phá API Đồ thị

Trong Trình khám phá API Đồ thị, chọn ứng dụng Chatbot Ezyvora. Tại phần quyền, thêm các quyền cần thiết cho việc kết nối và xử lý Messenger:

  • pages_show_list
  • pages_messaging
  • pages_manage_metadata
Thêm các quyền cần thiết trong Trình khám phá API Đồ thị
Thêm các quyền cần thiết trong Trình khám phá API Đồ thị

Sau khi chọn quyền, nhấn Generate Access Token để tạo lại access token với các quyền vừa cấu hình.

Nhấn Generate Access Token
Nhấn Generate Access Token

Có thể thử gửi truy vấn /me?fields=id,name để kiểm tra token đang hoạt động.

Gửi truy vấn me để kiểm tra access token
Gửi truy vấn /me?fields=id,name để kiểm tra access token

Tiếp theo, tại mục Người dùng hoặc Trang, mở danh sách và chọn Fanpage Ezyvora để chuyển sang sử dụng Page Access Token.

Chọn Fanpage Ezyvora để chuyển sang Page Access Token
Chọn Fanpage Ezyvora để chuyển sang Page Access Token

Trong quá trình thử nghiệm, nếu Meta trả về lỗi OAuthException hoặc thông báo thiếu quyền truy cập như hình dưới, cần bổ sung quyền cho ứng dụng và tạo lại access token.

Lỗi OAuthException do thiếu quyền truy cập
Lỗi OAuthException do thiếu quyền truy cập

Cụ thể, bổ sung thêm quyền pages_read_engagement. Lúc này ứng dụng sẽ có bốn quyền cần sử dụng: pages_show_list, pages_messaging, pages_manage_metadata, pages_read_engagement.

Bổ sung quyền pages_read_engagement
Bổ sung quyền pages_read_engagement

Sau khi bổ sung quyền, nhấn lại Generate Access Token.

Nhấn lại Generate Access Token sau khi bổ sung quyền
Nhấn lại Generate Access Token sau khi bổ sung quyền

Meta sẽ yêu cầu xác nhận tài khoản đang sử dụng. Nhấn Tiếp tục.

Xác nhận tài khoản đang sử dụng
Xác nhận tài khoản đang sử dụng

Chọn Fanpage muốn cấp quyền cho ứng dụng. Trong ví dụ này, chúng ta chọn Ezyvora, sau đó nhấn Tiếp tục.

Chọn Fanpage muốn cấp quyền cho ứng dụng
Chọn Fanpage muốn cấp quyền cho ứng dụng

Meta sẽ hiển thị lại các quyền mà Chatbot Ezyvora yêu cầu, bao gồm quyền quản lý Messenger, đọc nội dung Trang, quản lý webhook và hiển thị danh sách Trang. Kiểm tra lại và nhấn Lưu.

Kiểm tra lại các quyền và nhấn Lưu
Kiểm tra lại các quyền và nhấn Lưu

Khi xuất hiện thông báo tài khoản đã được kết nối với Chatbot Ezyvora, nhấn Đã hiểu để hoàn tất quá trình cấp lại quyền.

Thông báo tài khoản đã được kết nối với Chatbot Ezyvora
Thông báo tài khoản đã được kết nối với Chatbot Ezyvora

Sau khi quay lại Trình khám phá API Đồ thị, chọn lại Mã người dùng và nhấn Gửi để kiểm tra.

Chọn lại Mã người dùng trong Trình khám phá API Đồ thị
Chọn lại Mã người dùng trong Trình khám phá API Đồ thị
Nhấn Gửi để kiểm tra quyền truy cập
Nhấn Gửi để kiểm tra quyền truy cập

Nếu API trả về id và name của tài khoản thay vì lỗi OAuthException, access token và các quyền đã được cấp thành công.

API trả về id và name của tài khoản, access token đã được cấp thành công
API trả về id và name của tài khoản, access token đã được cấp thành công

Đến đây, ứng dụng Meta đã có các quyền cần thiết để làm việc với Fanpage và Messenger. Ở bước tiếp theo, chúng ta sẽ tiếp tục cấu hình kết nối trong EzyOA để tin nhắn từ Facebook Page có thể được chuyển đến EzyChat và Chatbot Ezyvora.

Tiếp theo, tại mục Người dùng hoặc Trang, chuyển từ Mã người dùng sang Fanpage Ezyvora để kiểm tra quyền truy cập trực tiếp với Trang.

Chuyển từ Mã người dùng sang Fanpage Ezyvora
Chuyển từ Mã người dùng sang Fanpage Ezyvora

Giữ truy vấn /me?fields=id,name và nhấn Gửi một lần nữa. Lúc này yêu cầu API sẽ được thực hiện bằng quyền truy cập của Fanpage thay vì tài khoản người dùng.

Gửi lại truy vấn me bằng quyền truy cập của Fanpage
Gửi lại truy vấn /me?fields=id,name bằng quyền truy cập của Fanpage

Nếu kết nối thành công, kết quả trả về sẽ gồm id và name của Fanpage Ezyvora. Trong ví dụ này, id chính là Page ID mà chúng ta sẽ sử dụng khi cấu hình Messenger trên EzyOA ở bước tiếp theo.

Kết quả trả về id và name của Fanpage Ezyvora
Kết quả trả về id và name của Fanpage Ezyvora

Như vậy, chúng ta đã kiểm tra được cả quyền truy cập tài khoản và quyền truy cập Fanpage. Đồng thời, ứng dụng đã có các quyền cần thiết để EzyOA làm việc với Messenger và chúng ta cũng đã lấy được Page ID của Ezyvora.

4. Cập nhật Page ID và lấy Access Token trên EzyOA

Sau khi lấy được Page ID của Fanpage Ezyvora từ Trình khám phá API Đồ thị, quay lại EzyOA → Các dịch vụ OA và mở dịch vụ Messenger đã tạo trước đó.

Tại trường Mã UUID ứng dụng, nhập Page ID vừa lấy được từ Meta. Các thông tin như ID ứng dụng và Khóa bí mật tiếp tục giữ theo ứng dụng Chatbot Ezyvora đã cấu hình trước đó.

Nhập Page ID vào trường Mã UUID ứng dụng
Nhập Page ID vào trường Mã UUID ứng dụng

Kiểm tra lại thông tin, đặt Trạng thái là Đã kích hoạt, sau đó nhấn Lưu để cập nhật cấu hình.

Đặt Trạng thái Đã kích hoạt và nhấn Lưu
Đặt Trạng thái Đã kích hoạt và nhấn Lưu

Sau khi lưu thành công, quay lại trang chi tiết dịch vụ Messenger. Tại đây EzyOA hiển thị các thông tin phục vụ kết nối như Đường dẫn webhook, Token xác thực Webhook, Đường dẫn callback xác thực và Auth URL. Nhấn Lấy access token để EzyOA bắt đầu quá trình xác thực với Facebook.

Nhấn Lấy access token trên trang chi tiết dịch vụ Messenger
Nhấn Lấy access token trên trang chi tiết dịch vụ Messenger

Facebook sẽ mở cửa sổ xác nhận kết nối với ứng dụng Chatbot Ezyvora. Nếu trước đó đã cấp quyền cho ứng dụng, Facebook có thể hỏi bạn có muốn tiếp tục với các cài đặt đã sử dụng hay không. Nhấn Tiếp tục để hoàn tất quá trình xác thực.

Nhấn Tiếp tục để hoàn tất quá trình xác thực với Facebook
Nhấn Tiếp tục để hoàn tất quá trình xác thực với Facebook

Sau bước này, EzyOA có thể nhận access token cần thiết để làm việc với Fanpage Ezyvora. Tiếp theo, chúng ta sẽ cấu hình Webhook để Meta có thể chuyển các sự kiện và tin nhắn Messenger về EzyOA.

5. Chọn Chatbot làm kịch bản xử lý tin nhắn Messenger

Sau khi kết nối tài khoản Facebook thành công, quay lại EzyOA → Các dịch vụ OA và mở dịch vụ Messenger vừa cấu hình. Tại trang chi tiết, hệ thống sẽ hiển thị các thông tin phục vụ kết nối như Webhook URL, Webhook Verify Token, Authentication Callback URL và Auth URL.

Thông tin Webhook URL và Webhook Verify Token của dịch vụ Messenger
Thông tin Webhook URL và Webhook Verify Token của dịch vụ Messenger

Kéo xuống phần Các kịch bản (Scenarios). Tại mục Phản hồi tin nhắn văn bản (Text Message Response), mở danh sách các phương thức xử lý.

Hệ thống cung cấp một số lựa chọn như Chat Bot, Delivery Order Codes hoặc Task List. Trong trường hợp này, chúng ta muốn tin nhắn từ Facebook Messenger được chatbot Ezyvora xử lý, vì vậy chọn Chat Bot.

Chọn Chat Bot tại mục Phản hồi tin nhắn văn bản
Chọn Chat Bot tại mục Phản hồi tin nhắn văn bản

Sau khi chọn Chat Bot, hệ thống sẽ yêu cầu chọn Chat Profile tương ứng. Tuy nhiên, trước khi Chat Profile có thể xuất hiện để lựa chọn, chúng ta cần khởi động Chat Profile Indexer trong EzyChat.

6. Khởi động Chat Profile Indexer

Truy cập EzyChat → Settings. Tại Chat Profile Indexer, nhấn Start.

Nhấn Start tại Chat Profile Indexer trong EzyChat Settings
Nhấn Start tại Chat Profile Indexer trong EzyChat Settings

Khi xuất hiện thông báo Successfully, Chat Profile Indexer đã được khởi động thành công.

Thông báo Successfully sau khi khởi động Chat Profile Indexer
Thông báo Successfully sau khi khởi động Chat Profile Indexer

7. Chọn Chat Profile Ezyvora

Quay lại EzyOA → OA Services và mở lại dịch vụ Messenger. Trong phần Scenarios, giữ Text Message Response là Chat Bot.

Tại Chat Profile Id, nhập từ khóa ezy và chọn Chat Profile ezyvora<1> trong danh sách gợi ý.

Chọn Chat Profile ezyvora trong danh sách gợi ý
Chọn Chat Profile ezyvora trong danh sách gợi ý

Cuối cùng, nhấn Save để lưu cấu hình.

Nhấn Save để lưu cấu hình Scenarios của dịch vụ Messenger
Nhấn Save để lưu cấu hình Scenarios của dịch vụ Messenger

Như vậy, Messenger đã được cấu hình để chuyển tin nhắn của khách hàng sang Chatbot Ezyvora xử lý.

8. Bổ sung quyền Email cho ứng dụng Meta

Quay lại ứng dụng đã tạo trên Meta for Developers, tại phần Quyền và tính năng, tìm quyền email và nhấn Thêm.

Tìm quyền email và nhấn Thêm
Tìm quyền email và nhấn Thêm

Meta sẽ hiển thị thông báo cho biết quyền này có thể được sử dụng trong các trường hợp sử dụng khác của ứng dụng. Nhấn Add để xác nhận.

Nhấn Add để xác nhận thêm quyền email
Nhấn Add để xác nhận thêm quyền email

Sau khi hoàn tất, quyền email sẽ được thêm vào ứng dụng.

9. Cấu hình Webhook để nhận tin nhắn Messenger

Tiếp theo, trong trường hợp sử dụng Messenger from Meta, chọn Webhooks.

Chọn Webhooks trong trường hợp sử dụng Messenger from Meta
Chọn Webhooks trong trường hợp sử dụng Messenger from Meta

Tại danh sách sản phẩm Webhook, chọn Page. Điền hai thông tin đã lấy từ dịch vụ Messenger trên EzyOA vào:

  • URL gọi lại: Webhook URL của dịch vụ Messenger.
  • Xác minh mã: Webhook Verify Token tương ứng.
Điền URL gọi lại và Xác minh mã cho Webhook Page
Điền URL gọi lại và Xác minh mã cho Webhook Page

Sau khi nhập đầy đủ thông tin, nhấn Xác minh và lưu.

Nhấn Xác minh và lưu
Nhấn Xác minh và lưu

Nếu thông tin chính xác, Meta sẽ xác minh Webhook thành công và hiển thị danh sách các trường có thể đăng ký nhận sự kiện.

Danh sách các trường Webhook có thể đăng ký nhận sự kiện
Danh sách các trường Webhook có thể đăng ký nhận sự kiện

Lưu ý: Webhook URL và Verify Token trong hình chỉ mang tính minh họa. Khi thực hiện, hãy sử dụng thông tin của dịch vụ Messenger bạn đã cấu hình trên EzyOA.

10. Đăng ký sự kiện messages

Trong danh sách Trường webhook, tìm đến trường messages và bật Đăng ký.

Bật Đăng ký cho trường webhook messages
Bật Đăng ký cho trường webhook messages

Đây là sự kiện cần thiết để ứng dụng nhận được thông báo khi người dùng gửi tin nhắn đến Facebook Page.

Khi Meta hiển thị thông báo Đã đăng ký theo dõi trường webhook messages, quá trình đăng ký đã hoàn tất.

Thông báo đã đăng ký theo dõi trường webhook messages
Thông báo đã đăng ký theo dõi trường webhook messages

Các trường Webhook khác chưa cần sử dụng trong hướng dẫn này có thể giữ nguyên trạng thái chưa đăng ký.

11. Kiểm tra Chatbot trên Facebook Messenger

Sau khi hoàn tất cấu hình, quay lại Facebook Page Ezyvora và mở cửa sổ Messenger để kiểm tra kết nối.

Mở cửa sổ Messenger trên Facebook Page Ezyvora
Mở cửa sổ Messenger trên Facebook Page Ezyvora

Gửi thử một tin nhắn, ví dụ "xin chào". Nếu Messenger, Webhook, EzyOA và Chatbot đã được kết nối đúng, tin nhắn sẽ được chuyển đến chatbot để xử lý.

Gửi thử tin nhắn xin chào trên Messenger
Gửi thử tin nhắn "xin chào" trên Messenger

Sau một khoảng thời gian ngắn, chatbot Ezyvora sẽ tự động gửi nội dung phản hồi ngay trong cuộc trò chuyện Messenger.

Chatbot Ezyvora phản hồi tin nhắn trên Messenger
Chatbot Ezyvora phản hồi tin nhắn trên Messenger

Như vậy, khách hàng không cần truy cập trực tiếp website vẫn có thể trò chuyện với cùng chatbot Ezyvora ngay trên Facebook Messenger.

Kết luận

Như vậy, chúng ta đã hoàn tất việc kết nối Facebook Messenger với Chatbot Ezyvora thông qua EzyOA. Thay vì xây dựng một chatbot riêng cho từng kênh, Ezyvora có thể sử dụng cùng một Chat Profile trong EzyChat để tiếp nhận và xử lý câu hỏi từ cả website lẫn Facebook Messenger.

Điều này giúp doanh nghiệp mở rộng thêm một điểm chạm với khách hàng nhưng vẫn quản lý chatbot tập trung trên EzyPlatform. Khi cần cập nhật cách chatbot tư vấn hoặc dữ liệu mà chatbot sử dụng, chúng ta có thể tiếp tục làm việc với Chat Profile hiện có thay vì phải cấu hình lại một chatbot riêng cho Facebook.

Chương trước: Thiết lập hồ sơ chat EzyChat kết nối khách hàng, chatbot AI và nhân viên hỗ trợ. ← Đọc Chương 9
Chương tiếp theo: Tạo Telegram Bot và kết nối với chatbot Ezyvora thông qua EzyOA. Đọc Chương 11 →