Hướng dẫn viết chat bot cho Facebook – Phần 2: Tạo Fanpage và kết nối với bot
Thấy các bạn test hộ nhiều quá, mình rất cảm động nên đã thêm chức năng “đàm luận nhân sinh” vào bot để các bạn có người chém gió nhe. Các bạn có thể tiếp tục trò chuyện với bot tại m.me/toidicodedao nhé
Ở phần trước, mình đã giới thiệu cơ chế hoạt động của bot Faceobok, cùng với một số khái niệm các bạn cần nắm rõ. Ở bài này, chúng ta sẽ bắt tay vào tạo fanpage và code nhé. Lần này mình hướng dẫn bằng video, các bạn bật phụ đề lên xem nhé.
Bước 1 – Tạo Fanpage, thêm chức năng Messenger
Các bạn làm theo clip dưới để tạo fanpage nhé. Với bạn nào đã có Fanpage thì xem đoạn sau để tích hợp chức năng Messenger vào fanpage.
Tính mình thích ngắn gọn, không muốn lê thê dài dòng nên video cũng rất ngắn gọn, chỉ khoảng 1-2 phút để không lãng phí thời gian của mọi người.
Bước 2 – Tạo Webhook và kết nối với Fanpage
Như mình đã nói ở bài trước, viết bot bằng ngôn ngữ gì cũng được, chỉ tạo được webhook và gọi được RestAPI là ok. Tuy nhiên, Facebook sẽ check Webhook của bạn, đòi hỏi webhook phải là https. Việc code và deploy webhook sẽ khá phiền phức, do đó chúng ta sử dụng Cloud9 – IDE trên mây. Các bạn xem lại bài cũ để biết sơ cách sử dụng nhé.
Sau khi đăng nhập vào cloud9, bạn làm theo các bước sau nhé. Link Github chứa code là https://github.com/ToiDiCodeDaoSampleCode/facebook-chat-bot
Bạn đã thành công trong việc tạo Webhook và kết nối nó với fanpage. Mỗi khi có người nhắn tin cho fanpage, bot server sẽ nhận được tin nhắn. Bắt đầu viết code xử lý tin nhắn thôi nào.
Bước 3 – Xử lý tin nhắn và trả lời
Mỗi khi có tin nhắn, facebook sẽ POST một request như sau lên Webhook của chúng ta (Thông tin chi tiết về webhook ở đây).
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
{
"object" : "page" ,
"entry" : [
{
"id" : "PAGE_ID" ,
"time" : 1457764198246 ,
"messaging" : [
{
"sender" : {
"id" : "USER_ID"
} ,
"recipient" : {
"id" : "PAGE_ID"
} ,
"timestamp" : 1457764197627 ,
"message" : {
"mid" : "mid.1457764197618:41d102a3e1ae206a38" ,
"seq" : 73 ,
"text" : "hello, world!"
}
}
]
}
]
}
|
Ta đọc trường messaging.message.text, xử lý và gửi chuỗi JSON sau đến RestAPI của facebook để trả lời (Thông tin chi tiết về API ở đây).
1
2
3
4
5
6
7
8
9
10
|
{
"recipient" : {
"id" : "USER_ID"
} ,
"message" : {
"text" : "hello, world!"
}
}
|
Các bạn tiếp tục làm theo video nhé
Đây là file server.js thành quả cho các bạn ko đọc được code. Nhớ gắn token của bạn vào để chạy!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
// # SimpleServer
// A simple chat bot server
var logger = require ( 'morgan' ) ;
var http = require ( 'http' ) ;
var bodyParser = require ( 'body-parser' ) ;
var express = require ( 'express' ) ;
var router = express ( ) ;
var app = express ( ) ;
app . use ( logger ( 'dev' ) ) ;
app . use ( bodyParser . json ( ) ) ;
app . use ( bodyParser . urlencoded ( {
extended : false
} ) ) ;
var server = http . createServer ( app ) ;
var request = require ( "request" ) ;
app . get ( '/' , ( req , res ) = > {
res . send ( "Home page. Server running okay." ) ;
} ) ;
// Đây là đoạn code để tạo Webhook
app . get ( '/webhook' , function ( req , res ) {
if ( req . query [ 'hub.verify_token' ] === 'ma_xac_minh_cua_ban' ) {
res . send ( req . query [ 'hub.challenge' ] ) ;
}
res . send ( 'Error, wrong validation token' ) ;
} ) ;
// Xử lý khi có người nhắn tin cho bot
app . post ( '/webhook' , function ( req , res ) {
var entries = req . body . entry ;
for ( var entry of entries ) {
var messaging = entry . messaging ;
for ( var message of messaging ) {
var senderId = message . sender . id ;
if ( message . message ) {
// If user send text
if ( message . message . text ) {
var text = message . message . text ;
console . log ( text ) ; // In tin nhắn người dùng
sendMessage ( senderId , "Tui là bot đây: " + text ) ;
}
}
}
}
res . status ( 200 ) . send ( "OK" ) ;
} ) ;
// Gửi thông tin tới REST API để trả lời
function sendMessage ( senderId , message ) {
request ( {
url : 'https://graph.facebook.com/v2.6/me/messages' ,
qs : {
access_token : "token" ,
} ,
method : 'POST' ,
json : {
recipient : {
id : senderId
} ,
message : {
text : message
} ,
}
} ) ;
}
app . set ( 'port' , process . env . OPENSHIFT_NODEJS_PORT || process . env . PORT || 3002 ) ;
app . set ( 'ip' , process . env . OPENSHIFT_NODEJS_IP || process . env . IP || "127.0.0.1" ) ;
server . listen ( app . get ( 'port' ) , app . get ( 'ip' ) , function ( ) {
console . log ( "Chat bot server listening at %s:%d " , app . get ( 'ip' ) , app . get ( 'port' ) ) ;
} ) ;
|
Hiện giờ bạn có thể test và viết thêm chức năng cho bot của mình được rồi đấy. Ở phần 3 mình sẽ hướng dẫn cách deploy bot lên server và submit cho Facebook duyệt nhé.
toidicodedao
-
Hồ sơ, thủ tục xác nhận hàng hóa sử dụng cho ươm tạo công nghệ
-
How to Disable Directory Listing on Your Web Server
-
How to use social media to create business value?
-
Hướng Dẫn A-Z Quảng Cáo Doanh Nghiệp Địa Phương Trên Facebook
-
Hướng dẫn tạo trang mạng xã hội với HumHub
-
Hướng dẫn tạo webserver với Azure Cloud free, cài đặt Kloxo lên Azure
-
Hướng dẫn xác định chi phí, giá phần mềm, giá website, giá ứng dụng
-
in dễ dàng, mọi lúc, mọi nơi với Google Cloud Print
-
Khác biệt giữa web giá rẻ và web cao cấp
-
Khởi nghiệp CNTT, viễn thông, marketing
-
Khởi nghiệp kinh doanh qua mạng xã hội: Khó có cơ hội làm lớn?
-
Kĩ năng kĩ nghệ phần mềm gồm những gì?
-
Kinh doanh trên sàn thương mại điện tử hay mạng xã hội?
-
Kinh tế chia sẻ và tiềm năng cho Việt Nam
DVMS chuyên:
- Tư vấn, xây dựng, chuyển giao công nghệ Blockchain, mạng xã hội,...
- Tư vấn ứng dụng cho smartphone và máy tính bảng, tư vấn ứng dụng vận tải thông minh, thực tế ảo, game mobile,...
- Tư vấn các hệ thống theo mô hình kinh tế chia sẻ như Uber, Grab, ứng dụng giúp việc,...
- Xây dựng các giải pháp quản lý vận tải, quản lý xe công vụ, quản lý xe doanh nghiệp, phần mềm và ứng dụng logistics, kho vận, vé xe điện tử,...
- Tư vấn và xây dựng mạng xã hội, tư vấn giải pháp CNTT cho doanh nghiệp, startup,...
Vì sao chọn DVMS?
- DVMS nắm vững nhiều công nghệ phần mềm, mạng và viễn thông. Như Payment gateway, SMS gateway, GIS, VOIP, iOS, Android, Blackberry, Windows Phone, cloud computing,…
- DVMS có kinh nghiệm triển khai các hệ thống trên các nền tảng điện toán đám mây nổi tiếng như Google, Amazon, Microsoft,…
- DVMS có kinh nghiệm thực tế tư vấn, xây dựng, triển khai, chuyển giao, gia công các giải pháp phần mềm cho khách hàng Việt Nam, USA, Singapore, Germany, France, các tập đoàn của nước ngoài tại Việt Nam,…
Quý khách xem Hồ sơ năng lực của DVMS tại đây >>
Quý khách gửi yêu cầu tư vấn và báo giá tại đây >>