NGUYỄN ĐẶNG PHƯƠNG NAM - 18521125 Nội dung đề tài:Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực hiện, kết quả mong đợi của đề tài Mục tiêu: Website thương mại điện tử
Trang 1ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
- -
BÁO CÁO ĐỒ ÁN 2
XÂY DỰNG WEBSITE THƯƠNG MẠI ĐIỆN TỬ
VỚI CHATBOT TƯ VẤN
Giảng viên hướng dẫn : ThS Trần Thị Hồng Yến Sinh viên thực hiện 1 : Nguyễn Hữu Hiếu
Mã số sinh viên 1 : 18520053 Sinh viên thực hiện 2 : Nguyễn Đặng Phương Nam
Mã số sinh viên 2 : 18521125
Thành phố Hồ Chí Minh, tháng 6 năm 2022
Trang 2LỜI CẢM ƠN
Chúng em xin gửi lời cảm ơn tới cô Trần Thị Hồng Yến, người đã trực tiếp tận tình hướng dẫn nhóm em trong suốt quá trình thực hiện đồ án Không chỉ gợi ý và định hướng chúng em thực hiện đề tài, cô còn rất nhiệt tình trong đưa ra những nhận xét, góp
ý để em có thể hoàn thành đồ án một cách tốt nhất Nếu không có những lời hướng dẫn, dạy bảo của thầy thì đồ án này rất khó có thể hoàn thiện được Một lần nữa, chúng em xin chân thành cảm ơn cô
Đề tài được nhóm thực hiện trong khoảng thời gian 3 tháng nên bước đầu đi vào thực tế, kiến thức cũng như kinh nghiệm thực tiễn của chúng em còn nhiều hạn chế Do vậy, chắc chắn không thể tránh khỏi những sai sót, nhóm rất mong nhận được những sự chỉ bảo, ý kiến đóng góp quý báu của cô và các bạn học cùng lớp để chúng em có điều kiện được bổ sung, nâng cao kiến thức của mình trong lĩnh vực này, giúp hoàn thiện hơn và tích lũy thêm cho bản thân nhiều kinh nghiệm, phục vụ tốt hơn cho công việc thực tế sau này
Chúng em xin chân thành cảm ơn cô!
Thành phố Hồ Chí Minh, ngày 03 tháng 06 năm 2022
Nhóm sinh viên thực hiện
NGUYỄN HỮU HIẾU – NGUYỄN ĐẶNG PHƯƠNG NAM
Trang 3ĐỀ CƯƠNG CHI TIẾT
Tên đề tài: Xây dựng website thương mại điện tử với chatbot tư vấn
Cán bộ hướng dẫn: THS TRẦN THỊ HỒNG YẾN
Thời gian thực hiện: Từ ngày 21/2/2022 đến ngày 10/6/2022
Sinh viên thực hiện:
1 NGUYỄN HỮU HIẾU - 18520053
2 NGUYỄN ĐẶNG PHƯƠNG NAM - 18521125
Nội dung đề tài:(Mô tả chi tiết mục tiêu, phạm vi, đối tượng, phương pháp thực
hiện, kết quả mong đợi của đề tài)
Mục tiêu:
Website thương mại điện tử được thực hiện dựa trên ba mục đích chính sau: Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình ứng dụng web với ReactJs, xây dựng hệ thống backend với NET Core, xây dựng chatbot với Microsoft Bot Framework
Thứ hai là phát triển ứng dụng web có tính thực tiễn cao, có khả năng triển khai ứng dụng vào thực tế, hỗ trợ các shop bán đồ thời trang với nội dung phong phú, độc đáo, giao diện thân thiện với người dùng, bố cục hợp lý, đáp ứng các chức năng cần thiết của một website thương mại điện tử Ngoài ra còn xây dựng trang quản trị với các chức năng quản lý thông tin đa dạng và tiện dụng
Thứ ba là tích hợp chatbot tự động vào website với các kịch bản tư vấn đa dạng cho khách hàng
Nhóm hy vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợp với sự tìm hiểu công nghệ của nhóm, đồ án của nhóm sẽ đạt được mục đích mong đợi
Trang 4Phương pháp thực hiện: làm việc với nhóm 02 thành viên, phân chia công việc phù
hợp với năng lực và kinh nghiệm của từng người, thực hiện đồ án theo lượng công việc và thời gian đã được lập kế hoạch chi tiết Các vấn đề liên quan đến đồ án đều được trao đổi trực tiếp giữa các thành viên
- Authentication: Json Web Token
- Source Control: Github
- Swagger UI - REST API
Kết quả mong đợi:
Sau khi xác định đề tài và nghiên cứu, tìm hiểu thực tế, nhóm đã xây dựng
ý tưởng thiết kế website bán hàng online đạt được những mục tiêu sau:
- Người dùng có nhu cầu mua hàng online
- Nhân viên, quản lý của cửa hàng
Trang 5Chuẩn bị kiến thức về công nghệ
- Tìm hiểu đề tài, xác định các chức năng của
hệ thống
- Tìm hiểu về Reactjs để xây dựng Frontend
- Tìm hiểu về Web API C# để xây dựng Backend
- Tìm hiểu về Azure SQL để xây dựng Database online
- Tìm hiểu về Microsoft Bot Framework và Facebook Messenger Chatbot để xây dựng chatbot
- Tìm hiểu về Json Web Token (JWT) để xác thực người dùng
Trang 6Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)
TP HCM, ngày 5 tháng 03 năm 2022
(Ký tên và ghi rõ họ tên)
- Tìm hiểu về In-memory-cache để cải thiện tốc độ caching giúp tăng tốc độ website
- Xây dựng Frontend bằng Reactjs
- Xây dựng Backend bằng Web API C#
- Xây dựng Chatbot
- Tích hợp API vào ứng dụng web
- Tích hợp Chatbot vào ứng dụng web
23/05/2022 – 29/05/2022
Kiểm thử và sửa lỗi
- Thực hiện kiểm thử các luồng chức năng
- Sửa lỗi, cải thiện giao diện, hoàn thiện ứng dụng
30/05/2022 – 10/06/2022
Hoàn thiện báo cáo
- Hoàn thiện báo cáo
Trang 7MỤC LỤC
CHƯƠNG 1 - TỔNG QUAN VỀ ĐỀ TÀI 1
1.1 Giới thiệu về đề tài 1
1.2 Khảo sát hiện trạng 1
1.3 Đối tượng nghiên cứu 4
1.4 Phạm vi nghiên cứu 4
1.5 Phương pháp nghiên cứu 4
1.6 Nhiệm vụ của đề tài 4
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT 6
2.1 Tổng quan về ReactJs và Redux 6
2.1.1 ReactJs 6
2.1.2 Redux 7
2.2 Tổng quan về NET Core 10
2.2.1 Giới thiệu 10
2.2.2 Khả năng sử dụng 10
2.2.3 Thành phần 11
2.2.4 Phân biệt NET Framework, NET Core và Mono 12
2.2.5 Trường hợp sử dụng 13
2.3 Tổng quan về SQL Azure 14
2.3.1 Giới thiệu 14
2.3.2 Quy trình hoạt động 15
2.3.3 Các lợi ích của SQL Azure 17
2.3.4 Sự khác biệt giữa SQL Azure và SQL Server 18
2.4 Tổng quan về Microsoft Bot Framework, Azure Bot Service 19
2.4.1 Khái niệm 19
Trang 82.4.2 Cấu trúc 20
2.4.3 Cách xây dựng một bot với Microsoft Bot Framework 23
2.5 Tìm hiểu về Facebook Messenger 25
2.5.1 Tổng quan 25
2.5.2 Đánh giá 25
2.5.3 Giới thiệu về Chatbot Facebook 26
2.5.4 Cách hoạt động 26
2.5.5 Một số khái niệm cơ bản 27
2.6 Tìm hiểu về In-Memory-Cache 28
2.6.1 Đặt vấn đề 28
2.6.2 In-Memory-Cache 28
2.6.3 Ưu điểm 29
2.6.4 Hạn chế 29
2.7 Tổng quan về JSON Web Token 30
2.7.1 Giới thiệu 30
2.7.2 Các thành phần 30
2.7.3 Trường hợp sử dụng 31
CHƯƠNG 3 - PHÂN TÍCH THIẾT KẾ HỆ THỐNG 32
3.1 Mô tả yêu cầu 32
3.1.1 Yêu cầu chức năng 32
3.1.2 Yêu cầu phi chức năng 34
3.2 Kiến trúc hệ thống 34
3.2.1 Sơ đồ kiến trúc tổng quát 34
Trang 93.2.4 Mô tả kiến trúc Back-End 38
CHƯƠNG 4 - HIỆN THỰC HỆ THỐNG 40
4.1 Thiết kế dữ liệu 40
4.1.1 Danh sách các đối tượng trong hệ thống 40
4.1.2 Dữ liệu đối tượng người dùng 41
4.1.3 Dữ liệu đối tượng giỏ hàng 42
4.1.4 Dữ liệu đối tượng sản phẩm 43
4.1.5 Dữ liệu đối tượng danh mục 44
4.1.6 Dữ liệu đối tượng đơn hàng 44
4.1.7 Dữ liệu đối tượng hóa đơn 45
4.1.8 Dữ liệu đối tượng lịch sử đơn hàng 46
4.2 Thiết kế giao diện 47
4.2.1 Danh sách các màn hình 47
4.2.2 Sơ đồ liên kết các màn hình 49
4.2.3 Giao diện các màn hình chức năng xác thực người dùng 50
4.2.4 Giao diện các màn hình chức năng liên quan đến mua hàng 51
4.2.5 Giao diện các màn hình chức năng liên quan đến quản lý 58
4.2.6 Giao diện các màn hình chức năng chatbot tư vấn 62
4.2.7 Giao diện các màn hình chức năng lưu trữ và thao tác với API 66
CHƯƠNG 5 - KẾT LUẬN 69
5.1 Đánh giá 69
5.1.1 Thuận lợi 69
5.1.2 Khó khăn 69
5.2 Kết quả đạt được 69
5.2.1 Ưu điểm 69
Trang 105.2.2 Nhược điểm 70 5.3 Hướng phát triển 70 TÀI LIỆU THAM KHẢO 71
Trang 11DANH MỤC BẢNG
Bảng 3.1 Mô tả chức năng của ứng dụng 33
Bảng 3.2 Mô tả thành phần kiến trúc front-end 36
Bảng 3.3 Mô tả thành phần kiến trúc Microsoft Bot Framework 37
Bảng 3.4 Mô tả thành phần kiến trúc back-end 39
Bảng 4.1 Danh sách các đối tượng trong hệ thống (chức năng) 40
Bảng 4.2 Mô tả dữ liệu người dùng 42
Bảng 4.3 Mô tả dữ liệu giỏ hàng 42
Bảng 4.4 Mô tả dữ liệu người dùng 44
Bảng 4.5 Mô tả dữ liệu danh mục 44
Bảng 4.6 Mô tả dữ liệu đơn hàng 45
Bảng 4.7 Mô tả dữ liệu hóa đơn 45
Bảng 4.8 Mô tả dữ liệu lịch sử đơn hàng 46
Bảng 4.9 Danh sách các màn hình chức năng 48
Trang 12DANH MỤC HÌNH ẢNH
Hình 1.1 Số liệu và đồ họa: iPrice Group 2
Hình 1.2 Top 10 website TMĐT có lượng truy cập cao nhất toàn quốc quý 4/2020 3
Hình 2.1 Các node tượng trưng cho một single page application 7
Hình 2.2 Luồng dữ liệu theo cấu trúc thông thường của ReactJS 8
Hình 2.3 Cấu trúc Redux cùng Middlewares 9
Hình 2.4 Thành phần trong NET 12
Hình 2.5 Giao diện đơn giản của kiến trúc SQL Azure 14
Hình 2.6 Ba đối tượng cốt lõi trong mô hình hoạt động của SQL Azure 15
Hình 2.7 SQL Azure Data Sync giúp đồng bộ hóa dữ liệu trên SQL Server 16
Hình 2.8 Cấu trúc của một Microsoft + Azure Bot Service 20
Hình 2.9 Phân tích cú pháp văn bản của Microsoft + Azure Bot Service 21
Hình 2.10 Câu đã được phân tích thành dạng Json 22
Hình 2.11 Cách xây dựng một bot với Microsoft Bot Framework 23
Hình 2.12 Lưu lượng người dùng sử dụng Facebook theo thời gian 25
Hình 2.13 Chatbot Facebook Messenger 26
Hình 2.14 Cách hoạt động của Chatbot liên kết với Messenger 26
Hình 2.15 Caching 28
Hình 3.1 Sơ đồ kiến trúc hệ thống 34
Hình 3.2 Sơ đồ kiến trúc front-end 35
Hình 3.3 Sơ đồ kiến trúc Microsoft Bot Framework 37
Hình 3.4 Sơ đồ kiến trúc back-end 38
Hình 4.1 Danh sách các đối tượng trong hệ thống (thuộc tính) 41
Hình 4.2 Đối tượng người dùng 41
Hình 4.3 Đối tượng giỏ hàng 42
Hình 4.4 Đối tượng sản phẩm 43
Hình 4.5 Đối tượng danh mục 44
Trang 13Hình 4.9 Sơ đồ liên kết giữa các màn hình chức năng 49
Hình 4.10 Giao diện màn hình đăng ký 50
Hình 4.11 Giao diện màn hình đăng nhập 50
Hình 4.12 Giao diện màn hình trang chủ 51
Hình 4.13 Giao diện màn hình trang chủ 52
Hình 4.14 Giao diện màn hình trang tìm kiếm 53
Hình 4.15 Giao diện màn hình trang danh mục (Áo polo nữ) 54
Hình 4.16 Giao diện màn hình trang chi tiết sản phẩm 55
Hình 4.17 Giao diện màn hình giỏ hàng 56
Hình 4.18 Giao diện màn hình trang đặt hàng (B1) 57
Hình 4.19 Giao diện màn hình trang đặt hàng (B2) 57
Hình 4.20 Giao diện màn hình đặt hàng thành công 58
Hình 4.21 Giao diện màn hình trang chủ trang quản trị 58
Hình 4.22 Giao diện màn hình trang quản lý sản phẩm 59
Hình 4.23 Giao diện màn hình chức năng thêm sản phẩm 59
Hình 4.24 Giao diện màn hình chức năng cập nhật sản phẩm 60
Hình 4.25 Giao diện màn hình chức năng xóa sản phẩm 61
Hình 4.26 Giao diện màn hình quản lý tài khoản 61
Hình 4.27 Giao diện khi click biểu tưởng hỏi chúng tôi để khởi động chatbot 62
Hình 4.28 Giao diện màn hình chức năng hỏi thông tin về shop 62
Hình 4.29 Giao diện màn hình chọn đồ (B1: chọn danh mục + B2: chọn màu sắc) 63
Hình 4.30 Giao diện màn hình chọn đồ (B3: chọn kích thước) và kết quả 64
Hình 4.31 Giao diện màn hình khi nhấn vào link chọn đồ của chatbot gửi 64
Hình 4.32 Giao diện màn hình chức năng chọn đồ ngẫu nhiên 65
Hình 4.33 Giao diện màn hình khi nhấn link chọn đồ ngẫu nhiên của chatbot gửi 65
Hình 4.34 Giao diện màn hình quản lý các API thông qua Swagger UI 66
Hình 4.35 Giao diện màn hình quản lý chi tiết các API thông qua Swagger UI 67
Hình 4.36 Giao diện màn hình quản lý khi thực thi các API thông qua Swagger UI 68
Trang 14CHƯƠNG 1 - TỔNG QUAN VỀ ĐỀ TÀI
1.1 Giới thiệu về đề tài
Ngày nay, thương mại điện tử (TMĐT) đã và đang trở thành một lĩnh vực có ảnh hưởng cực kỳ quan trọng đến tăng trưởng kinh tế của các quốc gia Sự phát triển của TMĐT không chỉ làm thuận lợi hóa các hoạt động kinh doanh mà còn cung cấp nhiều giá trị mới và đáp ứng những nhu cầu mới của các doanh nghiệp và người tiêu dùng Chính vì vậy, mọi quốc gia trên thế giới đều quan tâm đến việc đẩy mạnh phát triển TMĐT TMĐT vừa là công cụ, vừa là môi trường để phát triển kinh tế xã hội
Đại dịch COVID-19 là cơn “ác mộng” đối với nhiều lĩnh vực kinh tế trên toàn thế giới, nhưng dường như lại là “vận may” của các trang web thương mại điện tử, khi mua sắm trên mạng là cách duy nhất để có được những thứ người tiêu dùng cần trong thời kỳ giãn cách xã hội Với lợi thế mặt hàng phong phú dễ lựa chọn, tra cứu, tìm hiểu, giá cả minh bạch, người tiêu dùng không phải bỏ công đi đến cửa hàng để chọn lựa hàng hóa, được vận chuyển đến tận nhà nên không ít người vẫn ưu tiên lựa chọn dịch
vụ này Trong phạm vi đề tài đồ án 2, nhóm nghiên cứu “Xây dựng website thương mại điện tử với chatbot tư vấn” để có thể hỗ trợ, chia sẻ, giảm bớt sự khó khăn trong việc đi chợ trực tiếp và góp phần hạn chế gia tăng dịch bệnh, tránh tiếp xúc, tập trung đông người trong bối cảnh xã hội hiện nay
Trong đó, ngành hàng thời trang trở thành tâm điểm khi có mức tăng trưởng mạnh về lượng truy cập website lên đến 33% vào nửa cuối 2020, sau khi bị giảm đáng
Trang 15Trong khi đó, 2 ngành có tốc độ tăng trưởng nhanh nhất trong đầu năm 2020 là bách hóa và sức khỏe có xu hướng ổn định trong 6 tháng cuối năm, khi lần lượt đạt mức tăng 10% và 7%
Hình 1.1 Số liệu và đồ họa: iPrice Group
Một trong những lý do giúp tăng trưởng trong tiêu dùng online là tâm lý mua hàng Khi đại dịch được kiểm soát tốt tại Việt Nam, tâm lý tiêu dùng tích cực trở lại nên người dân chi tiêu nhiều hơn Thêm vào đó, ưu đãi mạnh từ các sàn thương mại điện tử cùng đối tác trong các chiến dịch cuối năm 2020 như Ngày lễ độc thân (11/11), Black Friday (27/11), Cyber Monday (30/11), Giảm giá 12/12, là dịp để người tiêu dùng tranh thủ sắm sửa những mặt hàng yêu thích
Riêng về thứ hạng lượt truy cập website của các sàn thương mại điện tử ba tháng cuối năm 2020 không có sự thay đổi so với quý trước đó
Shopee đạt hơn 68,5 triệu lượt truy cập trung bình mỗi tháng và trở thành sàn có
số lượng truy cập cao nhất, tăng hơn 30,6 triệu so với cùng kỳ năm ngoái (đứng đầu về lượng truy cập suốt 10 quý liên tiếp)
Trang 16Lượt truy cập vào website của Tiki và Lazada Việt Nam trung bình ba tháng cuối năm chênh lệch nhau khoảng 1,4 triệu, lần lượt là 22,2 và 20,8 triệu lượt Trong khi Sendo duy trì ở vị trí thứ 6 với mức 11,2 triệu lượt truy cập hàng tháng
Hình 1.2 Top 10 website TMĐT có lượng truy cập cao nhất toàn quốc quý 4/2020
Trang 171.3 Đối tượng nghiên cứu
Đồ án này hướng đến nghiên cứu các đối tượng sau:
❖ Các công nghệ:
o ReactJs
o NET Core
o SQL Azure
o Microsoft Bot Framework
o Facebook Messenger Chatbot
o In-Memory Cache
o JSON Web Token
o Github
o Swagger UI – Rest API
❖ Đối tượng trong phạm vi đề tài hướng đến:
o Những người dùng có nhu cầu mua hàng thời trang online
1.4 Phạm vi nghiên cứu
Đề tài tập trung vào nghiên cứu về ứng dụng website thương mại điện tử và chatbot tư vấn Sản phẩm của đề tài là ứng dụng website giúp cho chủ cửa hàng thời trang có thể quản lý shop của mình thông qua phần mềm và giúp khách hàng có thể tìm đến và mua hàng thời trang online Ngoài ra, với chatbot tư vấn có thể giúp khách hàng chọn lựa sản phẩm để mua một cách nhanh chóng, tiện lợi và chính xác
1.5 Phương pháp nghiên cứu
Nhóm đã sử dụng các phương pháp nghiên cứu:
- Phương pháp đọc tài liệu
- Phương pháp phân tích các ứng dụng website hiện có
1.6 Nhiệm vụ của đề tài
Đề tài “Xây dựng website thương mại điện tử với chatbot tư vấn” là một ứng dụng website chạy trên môi trường web đáp ứng các yêu cầu sau:
Trang 18- Cung cấp cho nhân viên, quản lý của cửa hàng một phần mềm có thể quản lý cửa hàng của mình một cách xuyên suốt, thông minh chỉ cần thông qua phần mềm
- Cung cấp một giao diện hiện đại, dễ dàng sử dụng cho cả người bán và người mua
- Cung cấp đa dạng các mặt hàng, danh mục sản phẩm cho người dùng
- Cung cấp khả năng tra cứu sản phẩm một cách thông minh
- Cung cấp cho người dùng khách hàng một trải nghiệm mua sắm xuyên suốt Có thể chỉ cần thông qua ứng dụng website có thể đặt hàng, thanh toán và nhanh hàng nhanh chóng, tiện lợi
- Cung cấp Chatbot tư vấn cho khách hàng lựa chọn sản phẩm một cách thông minh
Mục tiêu của đề tài là:
- Tìm hiểu xây dựng một ứng dụng website chạy trên môi trường production
- Tìm hiểu về kiến trúc hệ thống, những công nghệ liên quan
- Xây dựng thành công ứng dụng thương mại điện tử, trang quản trị ứng dụng và chatbot tư vấn
Trang 19
CHƯƠNG 2 - CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về ReactJs và Redux
2.1.1 ReactJs
React (hay React.js, ReactJS) là một thư viện JavaScript hướng đến xây dựng giao diện người dùng React là mã nguồn mở được phát triển bởi Facebook và cộng đồng những nhà lập trình
React đang nổi lên trong những năm gần đây theo xu hướng Single Page Application React hỗ trợ xây dựng những thành phần giao diện (components) có tính tương tác và tái sử dụng cao Chính vì vậy mà những website khi sử dụng React chạy mượt, nhanh, có khả năng mở rộng cao và cũng không quá khó để hiện thực React cho phép nhúng code HTML, CSS trong code JavaScript nhờ vào JSX, giúp cho lập trình viên có thể dễ dàng lồng ghép HTML, CSS vào trong JavaScript một cách tự nhiên hơn Ngoài ra, còn thể sử dụng React để render dữ liệu từ người dùng
React được xây dựng dựa trên khái niệm component Một component đại điện cho một thành phần giao diện người dùng có khả năng tái sử dụng từ đơn giản đến phức tạp, các component được lồng nhau tạo nên cấu trúc phân cấp, từ các component nhỏ
có thể xây dựng nên các component lớn hơn Một component có thể nhận những tham
số từ component khác và có trạng thái riêng biệt Các component còn có tổ chức phân cấp cho phép cho thể tương tác và phụ thuộc lẫn nhau
Các ưu điểm của React:
- Dễ dàng nhúng HTML, CSS vào trong React component bởi JSX
- Xây dựng giao diện từ các component, và React cũng cho phép tái sử dụng các component này, giúp việc rút gọn thời gian lập trình và dễ dàng quản lý các component hơn
- React có nhiều công cụ phát triển giúp cho việc debug code một dễ dàng hơn
- Hiệu suất tốt hơn với Virtual DOM React cho phép xây dựng các Virtual DOM, khi có sự thay đổi trong DOM thực tế thì Virtual DOM sẽ thay đổi ngay lập tức
Trang 20- React triển khai luồng dữ liệu một chiều, được truyền từ cha đến con thông qua thuộc tính (props), điều này giúp chúng ta dễ dàng suy luận và kiểm soát luồng logic hơn so với kiểu ràng buộc dữ liệu truyền thống Còn giúp cho quá trình phát hiện lỗi, bảo trì và nâng cấp một cách hiệu quả hơn.
2.1.2 Redux
Vấn đề quản lý trạng thái là một vấn đề khá phức tạp khi xây dựng giao diện người dùng Khi giao diện có độ phức tạp cao, các thành phần giao diện lồng nhau và
rẽ nhánh nhiều khiến việc quản lý trạng thái của từng thành phần càng khó khăn hơn
Trong ReactJS khi một dữ liệu thay đổi sẽ ảnh hưởng tới nhiều component cùng lúc vì trạng thái được chia sẻ từ component cha cho các component con Vấn đề xuất hiện chúng ta khi muốn chia sẻ các trạng thái qua nhiều component sẽ gây tăng độ phức tạp quản lý state, tăng tính kết dính và làm có các component khó tái sử dụng hơn
Để giải quyết vấn đề đó, Redux được xây dựng với ý tưởng tập trung hóa trạng thái của các đối tượng, từ đó giúp việc quản lý trạng thái dễ dàng và tốt hơn
Ví dụ: Chúng ta có 1 ứng dụng các node như trong hình là tượng trưng cho một single page application
Hình 2.1 Các node tượng trưng cho một single page application
Trang 21Hình 2.2 Luồng dữ liệu theo cấu trúc thông thường của ReactJS
Với những bài toán nhỏ thì chúng ta hoàn toàn có thể dùng ReactJs để cập nhật các trạng thái (state) một cách dễ dàng mà không cần dùng đến Redux Nhưng nếu là một bài toán lớn thì việc chỉ sử dụng ReactJs để cập nhật các trạng thái (state) là một khó khăn rất là lớn Từ những nhược điểm trên thì Redux ra đời nhằm khắc phục nhược điểm đó, ta chỉ cần dispatch một action từ node d3 về store rồi d4 và c3 chỉ cần connect tới store và cập nhật data thay đổi thế là bài toán được giải quyết một cách dễ dàng
Redux được xây dựng dưa trên 3 thành phần chính:
• Action: Một action là một đối tượng thuần JavaScript Một action có hai
thuộc tính chính là type và payload Type là định danh nhằm phân loại các action, payload chứa các thông tin cụ thể liên quan đến action Bên cạnh đó
để tạo ra một action bằng cách gọi action creator, thực chất là một hàm trả
về một đối tượng action
• Reducer: một reducer là một hàm nhận vào trạng thái hiện tại và đối tượng
action, cập nhật trạng thái nếu cần thiết và trả về trạng thái sau khi cập nhật Reducer không được phép chỉnh sửa trạng thái thay vào đó phải tạo một trạng thái mới
• Store: Chứa tất cả trạng thái của ứng dụng, được thay đổi bởi reducer khi
nhận vào các action
Trang 22Hình 2.3 Cấu trúc Redux cùng Middlewares
Bên cạnh đó, Redux có các middleware cho phép dispatch một function thay vì một object để để xử lý các logic bất đồng bộ (asynchronous) phức tạp
Trang 232.2 Tổng quan về NET Core
2.2.1 Giới thiệu
.NET Core là một framework được Microsoft phát triển Đây là một nền tảng phát triển đa mục đích .Net Core là nền tảng chéo (hỗ trợ Windows, macOS và Linux)
và có thể được sử dụng để xây dựng các ứng dụng thiết bị, đám mây và IoT
.NET Core hỗ trợ các ngôn ngữ như: C# và F# (và C++/CLI kể từ 3.1; chỉ được bật trên Windows) và nó còn hỗ trợ một phần của Visual Basic NET
Cụ thể:
• C#: Là loại ngôn ngữ lập trình phát triển theo hướng đối tượng và mục đích
• F#: Là loại ngôn ngữ lập trình cho chức năng đa nền tảng, mã nguồn mở Nó cũng thường bao gồm lập trình cho hướng đối tượng và mệnh lệnh
• Visual Basic: Là ngôn ngữ lập trình có cú pháp đơn giản giúp xây dựng cho các ứng dụng hướng tới đối tượng an toàn
Những công cụ (gọi tắt là IDE) để lập trình với NET core:
2.2.2 Khả năng sử dụng
ASP.NET đã xuất hiện cách đây 15 năm trước Nó là một phần của NET Framework Nó đã có hàng triệu lập trình viên đã sử dụng để xây dựng những ứng dụng web Và Microsoft đã phát triển thêm nhiều tính năng mới qua từng năm
ASP.NET Core có một số thay đổi lớn Từ việc học hỏi các framework module hóa khác ASP.NET Core không còn dựa trên System.Web.dll nữa Mà được dựa trên một tập hợp các gói, các module hay cũng được gọi là các Nuget packages
Với ASP.NET Core bạn có thể:
• HTTP request được tối ưu nhẹ hơn
Trang 24• Hợp nhất xây dựng web UI và web APIs
• Tích hợp những client-side frameworks hiện đại và có những luồng phát triển
• Hệ thống cấu hình dựa trên môi trường đám mây thật sự
• Dependency injection được xây dựng sẵn
• Có thể host trên IIS hoặc self-host trong process của riêng bạn
• Được xây dựng trên NET Core, hỗ trợ thực sự app versioning
• Những công cụ mới để đơn giản hóa quá trình phát triển web tối ưu
• Xây dựng và chạy đa nền tảng(Windows, Mac và Linux)
• Mã nguồn mở và tập trung vào cộng đồng
2.2.3 Thành phần
.NET Core bao gồm các nền tảng: NET Compiler Roslyn, NET Core framework CoreFX, NET Core runtime CoreCLR, và ASP.NET Core
Cấu trúc của.Net Core chi tiết
• CoreFX: Nó được xem là nền tảng thư viện dành cho NET Core
• CoreCLR: Đây là công cụ thực thi Net trong Net Core Nó hỗ trợ thực hiện một
số chức năng như thu gom và biên dịch rác thành mã máy
• .Net Core runtime: Sẽ cung cấp một kiểu hệ thống, tải lắp ráp, trình thu gom rác
và các dịch vụ cơ bản khác
• Net Core runtime: Cung cấp framework để việc xây dựng các ứng dụng hiện đại
tối ưu, dựa trên đám mây, ứng dụng web, kết nối internet,…
• .Net Core SDK và trình biên dịch ngôn ngữ (Roslyn và F#): giúp cho phép phát
triển Net Core
• Lệnh dotnet: Lệnh dùng cho việc khởi chạy ứng dụng NET Core và các lệnh
CLI
Trang 25Hình 2.4 Thành phần trong NET
2.2.4 Phân biệt NET Framework, NET Core và Mono
Với người mới làm quen với NET hay kể cả một số người đã làm việc với NET lâu năm Những thuật ngữ, khái niệm như NET Framework, Mono hay NET core vẫn hay gây ra nhầm lẫn Về cơ bản thì NET Framework, NET core và Mono là ba phiên bản NET khác nhau (có nghĩa là mỗi phiên bản có Runtime, Libraries và Toolings riêng) Dưới đây là sự khác biệt giữa ba phiên bản đó:
▪ NET Framework: Được Microsoft đưa ra chính thức từ năm 2002 .NET Framework chỉ hoạt động trên hệ điều hành Windows Những nền tảng như: WPF, Winforms, ASP.NET(1-4) hoạt động dựa trên NET Framework
▪ Mono là phiên bản cộng đồng giúp mang NET đến những nền tảng ngoài Windows Mono được phát triển để xây dựng những ứng dụng với giao diện người dùng và được sử dụng rất rộng rãi như: Unity Game, Xamarin…
▪ NET core: Đến năm 2013, Microsoft định hướng đa nền tảng và phát triển NET core .NET core hiện được sử dụng trong các ứng dụng Universal Windows platform và ASP.NET Core
Trang 262.2.5 Trường hợp sử dụng
Chúng ta nên lựa chọn NET Core nếu như:
• Đang muốn xây dựng ứng dụng của mình chạy đa nền tảng: Windows, Linux và Mac
• Có sẵn các tinh thần học hỏi, không sợ sai bởi vì NET Core vẫn chưa có thể hoàn thiện
• Phát triển ứng dụng theo kiểu Microservices: Xây dựng các ứng dụng phức tạp
dựa theo module với khả năng tách rời và với mỗi module có thể sử dụng các công nghệ khác nhau Hiện nay Net Core chính là một trong những lựa chọn chính xác nhất
• Nếu hệ thống của bạn cần hiệu năng và khả năng mở rộng tốt nhất cho dù có nhiều người dùng thì NET Core và ASP.NET Core sẽ vẫn là trợ thủ sáng giá nhất chúng ta nên lựa chọn
Trang 272.3 Tổng quan về SQL Azure
2.3.1 Giới thiệu
SQL Azure là một dịch vụ cơ sở dữ liệu quan hệ dựa trên đám mây, thúc đẩy các công nghệ SQL Server hiện có Microsoft SQL Azure mở rộng chức năng của Microsoft SQL Server để phát triển các ứng dụng dựa trên web, có khả năng mở rộng và được phân phối SQL Azure cho phép người dùng thực hiện các truy vấn quan hệ, hoạt động tìm kiếm và đồng bộ hóa dữ liệu với người dùng di động và các office từ xa SQL Azure
có thể lưu trữ và lấy cả dữ liệu có cấu trúc và phi cấu trúc
Hình 2.5 Giao diện đơn giản của kiến trúc SQL Azure
Trang 282 Server
Máy chủ SQL Azure là đối tượng giúp tương tác giữa tài khoản và cơ sở dữ liệu Sau khi tài khoản được đăng ký, cơ sở dữ liệu được cấu hình sử dụng máy chủ SQL Azure Các thiết lập khác như thiết lập tường lửa và gán tên miền (DNS) cũng được cấu hình trong máy chủ SQL Azure
3 Database
Cơ sở dữ liệu SQL Azure lưu trữ tất cả dữ liệu theo cách tương tự như bất kỳ cơ
Trang 29Ngoài những đối tượng cốt lõi thì còn một đối tượng bổ sung trong SQL Azure
Đối tượng này là công nghệ Đồng bộ dữ liệu SQL Azure Công nghệ Đồng bộ dữ
liệu SQL Azure được xây dựng trên Microsoft Sync Framework và cơ sở dữ liệu
SQL Azure
SQL Azure Data Sync giúp đồng bộ hóa dữ liệu trên SQL Server cục bộ với các
dữ liệu trên SQL Azure
Hình 2.7 SQL Azure Data Sync giúp đồng bộ hóa dữ liệu trên SQL Server
Data Sync còn có khả năng quản lý dữ liệu giúp chia sẻ dữ liệu dễ dàng giữa các
cơ sở dữ liệu SQL khác nhau Data Sync không chỉ được sử dụng để đồng bộ hóa tại
chỗ với SQL Azure, mà còn để đồng bộ hóa một tài khoản SQL Azure với tài khoản
khác
Trang 302.3.3 Các lợi ích của SQL Azure
1 Chi phí thấp hơn
SQL Azure cung cấp một số hàm tương tự như trên SQL Server tại chỗ với chi phí thấp hơn so với SQL Server tại chỗ Ngoài ra, khi sử dụng SQL Azure trên nền tảng đám mây, nó có thể được truy cập từ bất kỳ vị trí nào Do đó, không có thêm chi phí cần thiết để phát triển một cơ sở hạ tầng CNTT chuyên dụng và phòng ban
để quản lý cơ sở dữ liệu
2 Sử dụng TDS (Tabular Data Stream – Luồng dữ liệu dạng bảng)
TDS được sử dụng trong các cơ sở dữ liệu SQL Server tại chỗ cho các thư viện máy khách Do đó, hầu hết các nhà phát triển đã quen thuộc với TDS và cách sử dụng tiện ích này Cùng một loại giao diện TDS được sử dụng trong SQL Azure để xây dựng các thư viện máy khách Do đó, các nhà phát triển làm việc trên SQL Azure dễ dàng hơn
3 Biện pháp chuyển đổi dự phòng tự động
SQL Azure lưu trữ nhiều bản sao dữ liệu trên các vị trí vật lý khác nhau Thậm chí khi có lỗi phần cứng do sử dụng nhiều hoặc tải quá mức, SQL Azure giúp duy trì các hoạt động kinh doanh bằng cách cung cấp khả năng sẵn sàng của dữ liệu thông qua các địa điểm vật lý khác
4 Tính linh hoạt trong việc sử dụng dịch vụ
Ngay cả các tổ chức nhỏ cũng có thể sử dụng SQL Azure bởi mô hình định giá cho SQL Azure được dựa trên khả năng lưu trữ được tổ chức sử dụng Nếu tổ chức cần lưu trữ nhiều hơn, giá có thể thay đổi cho phù hợp với nhu cầu Điều này giúp các tổ chức có được sự linh hoạt trong việc đầu tư tùy thuộc vào việc sử dụng dịch
vụ
5 Hỗ trợ Transact-SQL
Do SQL Azure hoàn toàn dựa trên mô hình cơ sở dữ liệu quan hệ, nó cũng hỗ trợ các hoạt động và truy vấn Transact-SQL Khái niệm này cũng tương tự như hoạt động của các SQL Server tại chỗ Do đó, các quản trị viên không cần bất kỳ đào tạo hoặc hỗ trợ bổ sung nào để sử dụng SQL Azure
Trang 312.3.4 Sự khác biệt giữa SQL Azure và SQL Server
Một số khác biệt quan trọng khác giữa SQL Azure và SQL Server phía khách hàng như sau:
• Các công cụ – SQL Server phía khách hàng cung cấp một số công cụ để theo
dõi và quản lý Tất cả những công cụ này có thể không được hỗ trợ bởi SQL Azure bởi có một số tập hợp công cụ hạn chế có sẵn trong phiên bản này
• Sao lưu – Sao lưu và phục hồi chức năng phải được hỗ trợ trong SQL Server
phía khách hàng để khắc phục thảm họa Đối với SQL Azure, do tất cả các dữ liệu là trên nền tảng điện toán đám mây, sao lưu và phục hồi là không cần thiết
• Câu lệnh USE – Câu lệnh USE không được SQL Azure hỗ trợ Do đó, người
dùng không thể chuyển đổi giữa các cơ sở dữ liệu trong SQL Azure so với SQL Server phía khách hàng
• Xác thực – SQL Azure chỉ hỗ trợ xác thực SQL Server và SQL Server phía
khách hàng hỗ trợ cả xác thực SQL Server và xác thực của Windows
• Hỗ trợ Transact-SQL – Không phải tất cả các chức năng Transact-SQL đều
được SQL Azure hỗ trợ
• Tài khoản và đăng nhập – Trong SQL Azure, các tài khoản quản trị được tạo
ra trong cổng thông tin quản lý Azure Do đó, không có thông tin đăng nhập người dùng mức thể hiện cấp riêng biệt
• Tường lửa – Các thiết lập tường lửa cho các cổng và địa chỉ IP cho phép có thể
được quản lý trên máy chủ vật lý cho SQL Server phía khách hàng Bởi cơ sở dữ liệu SQL Azure có mặt trên điện toán đám mây, xác thực thông qua các thông tin đăng nhập là phương pháp duy nhất để xác minh người dùng
Trang 322.4 Tổng quan về Microsoft Bot Framework, Azure Bot Service
2.4.1 Khái niệm
Microsoft Bot Framework, cùng với Azure Bot Service, cung cấp các công cụ để xây dựng, kiểm tra, triển khai và quản lý các bot thông minh, tất cả ở một nơi Bot Framework bao gồm một SDK mô-đun và có thể mở rộng để xây dựng bot, cũng như các công cụ, mẫu và các dịch vụ AI liên quan Với khung này, các nhà phát triển có thể tạo bot sử dụng giọng nói, hiểu ngôn ngữ tự nhiên, xử lý các câu hỏi và câu trả lời Bots mang đến trải nghiệm không giống như sử dụng máy tính mà giống như giao tiếp với một người - hoặc ít nhất là một robot thông minh Chúng có thể được sử dụng
để chuyển các công việc đơn giản, lặp đi lặp lại, chẳng hạn như đặt chỗ ăn tối hoặc thu thập thông tin hồ sơ sang các hệ thống tự động có thể không còn cần đến sự can thiệp trực tiếp của con người Người dùng trò chuyện với bot bằng văn bản, thẻ tương tác và giọng nói Tương tác với bot có thể là một câu hỏi và câu trả lời nhanh hoặc có thể là một cuộc trò chuyện phức tạp cung cấp quyền truy cập vào các dịch vụ một cách thông minh
• Bot có thể được coi là một ứng dụng web có giao diện trò chuyện Người dùng kết nối với bot thông qua một kênh như Facebook, Slack hoặc Microsoft
Teams
• Bots rất giống các ứng dụng web hiện đại, sống trên internet và sử dụng các API để gửi và nhận tin nhắn Những gì trong một bot rất khác nhau tùy thuộc vào loại bot đó là gì Phần mềm bot hiện đại dựa trên nhiều công nghệ và công cụ để mang lại trải nghiệm ngày càng phức tạp trên nhiều nền tảng khác nhau Tuy nhiên, một bot đơn giản có thể chỉ nhận một tin nhắn và gửi lại cho người dùng với rất thông tin liên quan
• Bots có thể làm những điều tương tự mà các loại phần mềm khác có thể làm
- đọc và ghi tệp, sử dụng cơ sở dữ liệu và API cũng như thực hiện các tác vụ tính toán thông thường Điều làm cho bot trở nên độc đáo là việc chúng sử
Trang 33• Các công cụ của Bot Framework để bao gồm quy trình phát triển bot từ đầu đến cuối
• Bot Framework Service (BFS) để gửi và nhận tin nhắn và sự kiện giữa các bot và các kênh
• Triển khai bot và cấu hình kênh trực quan trong Azure
Ngoài ra, bot có thể sử dụng các dịch vụ Azure khác, chẳng hạn như:
• Azure Cognitive Services để xây dựng các ứng dụng thông minh
• Azure Storage cho giải pháp lưu trữ đám mây
2.4.2 Cấu trúc
Hình 2.8 Cấu trúc của một Microsoft + Azure Bot Service
Mỗi chuỗi hội thoại được gọi là Dialog , giống như hội thoại giữa bot và người
dùng
Người dùng có thể nói "Tôi muốn đặt một chuyến bay đến Delhi" và bot phản hồi lại bằng một số cuộc trò chuyện như: "Tôi có thể biết bạn muốn lên chuyến
bay từ đâu, bạn muốn đi du lịch vào ngày nào?"
Đầu vào của người dùng được gọi là Utterance (là đơn vị nhỏ nhất của lời nói
Nó là một đoạn liên tục của bài phát biểu bắt đầu và kết thúc với một khoảng dừng rõ ràng), người dùng có thể phát biểu ý kiến của mình qua bất kỳ kênh nào (Skype, Facebook Messenger, Telegram, Microsoft Teams, Web Chat, v.v.)
Trang 34Bây giờ sau khi lấy thông tin đầu vào của người dùng, Bot phải phân tích cú pháp
để tìm ra ý nghĩa thực sự của người dùng theo những gì anh ta nói Vì vậy, nhóm sử dụng một dịch vụ ML.Net Framework để training cho Bot có thể hiểu được ngôn ngữ
tự nhiên và phân loại thông tin đầu vào
Hình 2.9 Phân tích cú pháp văn bản của Microsoft + Azure Bot Service
Từ các ví dụ trên, chúng tôi suy ra rằng danh từ là thực thể trong lời nói của người dùng, trạng từ / động từ là mục đích ý định mà người dùng muốn bot thực hiện
Từ đó, Bot sẽ phân tích cú pháp lời nói của người dùng bằng cách sử dụng các thuật toán học máy nhận thức phức tạp để cung cấp đầu ra JSON được tuần tự hóa qua API REST giống như sau:
Trang 35Hình 2.10 Câu đã được phân tích thành dạng Json
Sau khi nhận được tất cả các ý định và thực thể, Bot có thể xử lý nó trong SDK khung bot bằng cách sử dụng logic tùy chỉnh của nhà phát triển bằng C # hoặc Node.JS
Trang 362.4.3 Cách xây dựng một bot với Microsoft Bot Framework, Azure Bot
Service
Azure Bot Service và Bot Framework cung cấp một bộ công cụ và dịch vụ tích hợp
để hỗ trợ quá trình này Chọn môi trường phát triển hoặc các công cụ dòng lệnh để tạo bot SDK tồn tại cho C#, Java, JavaScript, Typescript và Python Nó cung cấp các công cụ cho các giai đoạn phát triển khác nhau của bot để giúp thiết kế và xây dựng bot
Hình 2.11 Cách xây dựng một bot với Microsoft Bot Framework, Azure Bot Service
- Design: Như với bất kỳ loại phần mềm nào, việc hiểu rõ các mục tiêu, quy trình
và nhu cầu của người dùng là điều quan trọng đối với quá trình tạo ra một bot thành công
o Xây dựng kiến trúc bot
o Áp dụng mô hình kiến trúc ML.NET để huấn luyện
- Test: Bots là những ứng dụng phức tạp với nhiều phần khác nhau hoạt động cùng nhau Giống như bất kỳ ứng dụng phức tạp nào khác, điều này có thể dẫn đến một số lỗi thú vị hoặc khiến bot hoạt động khác với mong đợi Trước khi xuất
Trang 37o Test bot với trình giả lập Bot Framework Emulator, trình giả lập có thể được chạy cục bộ cùng với ứng dụng bot đang phát triển, nó không chỉ cung cấp giao diện mà còn có các công cụ để gỡ lỗi và phân tích để giúp hiểu được cách thức và lý do xảy ra các hành động của bot
o Sau khi được định cấu hình thông qua cổng Azure, bot có thể được tiếp cận thông qua giao diện trò chuyện web Giao diện trò chuyện web là một cách tuyệt vời để cấp quyền truy cập vào bot cho người thử nghiệm và những người khác không có quyền truy cập trực tiếp vào mã đang chạy của bot
- Publish: Khi đã sẵn sàng để bot của mình lên web, xuất bản bot lên Azure hoặc dịch vụ web hoặc trung tâm dữ liệu Có một địa chỉ trên internet là bước đầu tiên
để bot trở nên sống động trên các ứng dụng hoặc các kênh trò chuyện
- Liên kết: Microsoft Bot Framework, Azure Bot Service hỗ trợ kết nối bot với các kênh chat, mạng xã hội phổ biến như Facebook, Messenger, Kik, Slack, Microsoft Teams, Telegram, SMS và Twilio Bot Framework thực hiện hầu hết các công việc cần thiết để gửi và nhận tin nhắn từ tất cả các nền tảng khác nhau này - ứng dụng bot sẽ nhận được một luồng tin nhắn thống nhất, chuẩn hóa bất
kể số lượng và loại kênh mà nó được kết nối
- Sử dụng dữ liệu được thu thập ở Azure để xác định các cơ hội cải thiện khả năng
và hiệu suất của bot Có thể nhận dữ liệu thiết bị và cấp dịch vụ như lưu lượng truy cập, độ trễ và tích hợp Analytics cũng cung cấp báo cáo cấp cuộc trò chuyện
về dữ liệu người dùng, tin nhắn và kênh
Trang 382.5 Tìm hiểu về Facebook Messenger
2.5.1 Tổng quan
Facebook Messenger là một ứng dụng trò chuyện của Facebook Nó cho phép người dùng Facebook trò chuyện với mọi người trên nhiều nền tảng
Về số lượng người dùng, theo thống kê ta có bảng đánh giá:
Hình 2.12 Lưu lượng người dùng sử dụng Facebook theo thời gian
Sơ đồ cho thấy số lượng người dùng tăng rất nhanh theo thời gian Có thể chatbot còn góp một phần quan trọng trong lĩnh vực truyền thông Vì rất có thể chat bot, trí thông minh nhân tạo trong tương lai, thông qua Messenger có thể cho bạn biết về các thông tin nóng trên mạng xã hội, được nhiều người tìm và chia sẻ tại thời điểm bạn đưa
- Khả năng tùy biến cao
- Giao diện hóa văn bản
Trang 392.5.3 Giới thiệu về Chatbot Facebook
Hình 2.13 Chatbot Facebook Messenger
Về mặt kỹ thuật, có thể hiểu đơn giản chatbot là một chương trình được lập trình
sẵn tương tác tự động với người dùng bằng ngôn ngữ tự nhiên dưới giao diện tin nhắn
Chatbot Facebook là một phần mở rộng cho chức năng nhắn tin trên trang Facebook của bạn
Mỗi một chatbot messenger bắt buộc phải liên kết với một trang Facebook đang tồn tại Vì vậy, nếu bất cứ ai đang chat với trang của bạn thì chatbot sẽ đều biết, sau đó đánh giá cuộc trò chuyện của bạn để đưa ra câu trả lời thích hợp
Ở phạm vi Messenger, chatbot là công cụ kết nối vào fanpage của bạn thông qua thiết lập webhook, chatbot lúc này có thể xem như một (hoặc nhiều) nhân viên, trợ lý
ảo của bạn
2.5.4 Cách hoạt động
Hình 2.14 Cách hoạt động của Chatbot liên kết với Messenger
Hoạt động của Bot như sau:
1 Khi có người gửi tin nhắn đến fanpage
Trang 402 Thông tin tin nhắn sẽ được truyền đến toàn bộ các webhook đã được đăng ký
trước đó Ví dụ như webhook của chatbot
3 Chatbot server gửi xác nhận đã nhận sự kiện Sau đó xử lý tin nhắn và gửi trả
lại nếu cần thiết thông qua API của messenger
4 Người dùng nhận lại phản hồi
2.5.5 Một số khái niệm cơ bản
1 Webhook
Webhook là một công nghệ rất tiện dụng trong việc triển khai các phản ứng sự kiện (event) trên website của bạn Webhook cung cấp một giải pháp giúp ứng dụng server-side thông báo cho ứng dụng phía client-side khi có sự kiện phát sinh đã xảy ra trên máy chủ (event reaction) Cũng chính vì vậy, ứng dụng client-side sẽ không cần phải liên tục hỏi hoặc check với ứng dụng server-side
2 Facebook Application
Để tạo Chatbot trên Messenger, bạn cần hai thứ: public Facebook page và public Facebook application được kết nối tới page của bạn