Trong loạt bài mới này tôi sẽ tập trung viết ứng dụng Go vào xây dựng các dịch vụ hữu ích thực tế. Đề tài đầu tiên được chọn là xây dựng Facebook Messenger chatbot và triển khai server ở Amazon AWS Lambda.
Chatbot là gì?
"Bot" là một thuật ngữ tổng quát được sử dụng để mô tả bất kỳ phần mềm nào tự động hóa các tác vụ. Do đó chatbot là dịch vụ nhắn tin/tán gẫu mà ở đó phần mềm sẽ tự động trả lời khi người dùng nhắn tin trao đổi.
Những dịch vụ chatbot nổi tiếng có thể kể đến như Apple Siri, Google Now, Microsoft Contana hay Amazon Alexa. Hiện tại có khá nhiều dịch vụ chat mở API hỗ trợ chatbot như Facebook Messenger, Skype, Viber, Slack, Telegram, Zalo, v.v…
Messenger chatbot
Tại sự kiện F8 năm 2016, Facebook chính thức giới thiệu dịch vụ chatbot trên Facebook Messenger. Từ đó đến nay, Messenger chatbot đã phát triển không ngừng trở thành một kênh chăm sóc khách hàng quan trọng của các doanh nghiệp.
Với một số tính năng cung cấp thêm cho chatbot như menu, trả lời nhanh, danh sách, mẫu phản hồi, Messenger chatbot không chỉ được sử dụng trong chăm sóc khách hàng mà còn thể áp dụng ở các lĩnh vực khác như:
- Tin tức
- Lấy ý kiến khách hàng
- Giáo dục bằng hình thức trắc nghiệm
…
Các thành phần cấu thành dịch vụ Messenger chatbot
Cho đến thời điểm hiện tại Messenger chatbot chỉ hỗ trợ tạo chatbot trên Facebook page nên để tạo dịch vụ chatbot trên Messenger chúng ta cần 3 thành phần như sau:
- Facebook page: Để tạo được chatbot cho page này chúng ta chỉ lưu ý 2 chỗ:
+ Chúng ta phải là admin của page thì mới có thể thực thi chatbot một cách đầy đủ.
+ ID của page cần lưu lại để có thể khai báo ở chatbot sau này.
- Facebook app: Để phát triển ứng dụng với các dịch vụ của Facebook bạn cần tạo Facebook app tại trang Facebook developer. App này dùng nền tảng Messenger của Facebook và nó sẽ đóng vai trò cầu nối giữa Messenger của page và chatbot server mà chúng ta phát triển.
- Chatbot server: Đây là trung tâm xử lý chatbot. Nó nhận các câu chat hoặc yêu cầu từ người dùng trên Messenger của page thông qua Facebook app rồi lại trả lời cho người dùng cũng ở Messenger trên page thông qua Facebook app luôn.
Sơ đồ sau mô tả cách thức Messenger chatbot hoạt động
(1) Khi người dùng nhắn tin trên Messenger của trang Facebook GoBot, Messenger sẽ chuyển tin cho GoBot server thông qua Facebook App đã tạo trước đó.
(2) Nền tảng Messenger của Facebook sẽ gửi một gói tin JSON đến URL nhận webhook mà chúng ta phải khai báo khi tạo Facebook App này. Chúng ta sẽ tìm hiểu vấn đề này sau.
(3) Sau khi xử lý tin nhắn nhận được và tạo tin phản hồi, GoBot server sẽ gửi gói tin JSON đến URL REST API do Facebook cung cấp sẵn. Facebook sẽ nhận được gói tin này, chuyển cho Facebook Messenger của page.
(3) Sau khi xử lý tin nhắn nhận được và tạo tin phản hồi, GoBot server sẽ gửi gói tin JSON đến URL REST API do Facebook cung cấp sẵn. Facebook sẽ nhận được gói tin này, chuyển cho Facebook Messenger của page.
(4) Facebook Messenger hiển thị tin phản hồi.
Các bước cơ bản để tạo Facebook page và Facebook app
Tạo Facebook page
1. Chọn chức năng tạo trang trên Facebook
2. Chọn loại trang, ở đây tôi chọn là "Doanh nghiệp hoặc thương hiệu"
3. Đặt tên trang và chọn cụ thể loại hình trang
4. Chọn hình đại diện và hình bìa cho trang, có thể bỏ qua
Tạo Facebook App
1. Vào trang Facebook developer. Nếu bạn chưa có tài khoản developer sẽ được yêu cầu tạo với vài khai báo đơn giản. Sau đó hãy tạo ứng dụng bằng cách chọn "Thêm ứng dụng mới".
2. Đặt tên app và email liên hệ, ở đây tôi chọn là GoBot
3. Do chúng ta cần tạo app cho chatbot nên khi app tạo xong, chúng ta kéo xuống dưới chọn "Thiết lập" ở mục "Messenger" để sử dụng nền tảng Messenger.
4. Đến phần "Tạo mã", chọn page bạn đã tạo ở trên từ danh sách xổ xuống. Ở đây tôi chọn GoBot. Lúc này Facebook sẽ hiển thị màn hình để chúng ta xác nhận là app mới tạo này có quyền thao tác trên page thay cho chúng ta
5. Mã token tương ứng cho page được tạo ra. Sau này khi dùng Facebook REST API để tương tác, token này được sử dụng và Facebook sẽ hiểu là app này đang thực thi tác vụ trên page GoBot
6. Tiếp theo chúng ta phải khai báo webhook bằng cách chọn "Thiết lập webhook" ở bên dưới phần tạo mã, ở đây chúng ta chọn loại tin mà chúng ta muốn nhận để xử lý và cung cấp URL để Facebook gửi đến khi có loại tin chúng ta đã đăng ký. Một số lưu ý:
- URL webhook phải là https
- Mã xác minh là chuỗi để Facebook xác thực sự tồn tại của webhook tương ứng.
- "messages" là loại tin gồm các tin văn bản, hình ảnh hoặc file đính kèm.
- "messging_postbacks" là loại tin phản hồi tương tác của người dùng ở menu, nút, v.v...
7. Nếu bạn chưa tạo server tương ứng với URL đã cung cấp hoặc không xác nhận chuỗi xác minh, Facebook sẽ báo lỗi như sau
Như vậy là chúng ta đã hoàn thành 2 thành phần của Messenger chatbot là Facebook page và Facebook app. Trong bài tới chúng ta sẽ xây dựng GoBot server và xác minh lại webhook để hoàn thiện chatbot này.
Tóm tắt:
- Chatbot là dịch vụ trả lời tin nhắn tự động. Hiện tại có khá nhiều dịch vụ mở API như Facebook Messenger, Zalo, Viber, Skype, Slack, v.v...
- Facebook Messenger chatbot cấu thành từ 3 thành phần: Messenger trên 1 facebook page, Facebook app hỗ trợ Messenger và chatbot server
No comments:
Post a Comment