Giới thiệu
Tại bài viết trước thì mình có chỉ dẫn các nàng làm chatbot Facebook messenger cho trang cá nhân. Hôm nay mình sẽ chỉ dẫn các bạn tạo chatbot cho một account kênh Facebook cá nhân.
Bài đăng này mình sẽ dùng nodejs và dialogflow để viết , train cho con bot này.
Chuẩn bị
- thiết lập nodejs ở trang Nodejs
- Một tài khoản google.
- Một tài khoản kênh Facebook.
Quá trình hành động
Bước 1:
Đầu tiên cài đặt đủ nodejs
, npm
hoặc có khả năng thay thế bằng yarn
cái này tùy toàn bộ mọi người. Ở đây mình dùng yarn
. có không hề ít cách để thiết lập node. các nàng vào trang https://nodejs.org/en/download/
- nếu bạn đang sử dụng window thì chỉ cần tải tệp
node-vx.x.x.msi
về cài đặt là okeyy - nếu như bạn dùng ubuntu bạn gõ lệnh
sudo apt install nodejs npm
- nếu như bạn sử dụng macOS bạn có khả năng tải tệp
node-vx.x.x.pkg
Khi mà đã cài chấm dứt, bạn kiểm tra lại xem nodejs đã có hay chưa bằng cách:
Như Vậy coi như là đã có môi trường nodejs cho máy bạn. tiếp theo mình sẽ cài yarn
thay cho npm
. thứ này không nắm buộc các nàng cài tuy nhiên nếu các bạn yêu thích thì vẫn có thể cài cả 2 cái. Bạn có khả năng cài yarn
bằng việc đơn giản nhất thông qua npm
với câu lệnh npm install --global yarn
OK Vậy là bạn đã có môi trường để làm việc với nodejs.
Xem thêm: Hướng dẫn tạo Chatbot cho Fanpage đơn giản và hiệu quả mới nhất 2020
Bước 2
Tạo project nodejs bằng lệnh yarn init
Như Vậy coi như là bạn đã tạo được một project node. kế tiếp việc cần làm là cài thêm một vài package cần thiết. Mình sẽ sử dụng cacs package sau:
"name": "ChatBot",
"version": "1.0.0",
"description": "Chatbot messenger for personal account",
"main": "server.js",
"scripts":
"start": "node starter.js",
,
"keywords":
"author": "LCD",
"license": "MIT",
"dependencies":
"babel-polyfill": "^6.26.0",
"babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"babel-register": "^6.26.0",
"dialogflow": "^0.6.0",
"facebook-chat-api": "^1.6.0",
"node-env-file": "^0.1.8"
Phía trên là những package mình sử dụng trong project được đặt ở tại tệp package.json
. Bạn có thể copy các dependencies
rồi dán vào file package.json
của mình. Rồi dùng lệnh yarn install
để cài dặt chúng. Hoặc các bạn có khả năng thêm các package trên bằng lệnh yarn add ten-package
mà ko cần chỉnh sửa file package.json
. một số package:
babel-polyfill, babel-register, ...
dùng để dịch ES6 thanh lịch những đời ES thấp hơn.dialogflow
để connect với dialogflownode-env-file
để đọc biến môi trường ở tệp env ở local. file này để lưu những thông tin như tài khoản, mật khẩu fb, id project dialogflow, …facebook-chat-api
đây là package chủ đạo giúp chúng ta login vào fb và giải quyết dữ liệu từ người sử dụng khacs gởi đến. , gưit trả lại tin nhắn.
Bước 3 xây dựng project dialogflow
các nàng xây dựng account dialogflow bằng việc đăng nhập thông qua account google của các nàng ở địa chỉ sau https://dialogflow.com/
Xem thêm: Hướng dẫn cách sử dụng Facebook Chatbot hiệu quả mới nhất 2020
Sau khi tạo tài khoản thành công
Sau đấy xây dựng một project dialogflow. Đặt tên con bot là gì thì tùy ý bạn. Ở đây google chỉ mới hỗ trợ một số ngôn ngữ chắc chắn. mong rằng trong tương lai sẽ hỗ trợ tiếng Việt.
Khi mà đã xây dựng hoàn thành thì đây là màn hình quan sát cũng như quản lý con bot của bạn
các nàng nhấn vào Small Talk , enable nó lên
Sau đã bật Small Talk lên bạn việc bạn cần làm tiếp đến là train các câu hỏi mặc định cho nó tại phần ở dưới.
Việc tiếp theo là bạn phải cần thu thập id của con bot. bằng cách nhập vào settings
Thu thập tệp config của project dialogflow trong trang https://console.cloud.google.com
Select a project
bạn chọn cái dialogflow vừa xây dựng lúc nãy
Ở thanh thực đơn bên trái chọn API & Services -> Credentials
Tìm phần OAuth 2..0 client IDs
, dowload file config về file này bạn để ở tại project node vừa tạo ở trên.
Bước 4. Viết code nodejs
Trở lại project node bạn vừa xây dựng lúc nãy.
- bạn phải cần 1 tệp
.env
để lưu tên tài khoản, password, bot id
FB_EMAIL=your.fb.email@gmail.com
FB_PASSWORD=your.fb.password
PROJECT_DIALOGFLOW_ID=your-bot-id
DIALOGFLOW_SESSION_ID=quickstart-session-id
GOOGLE_APPLICATION_CREDENTIALS=./your-crdential-file.json
Mình giải nghĩa 1 chút:
- FB_EMAIL: là email đăng nhập vào account fb của bot
- FB_PASSWORD: password đăng nhập tài khoản fb của bot
- PROJECT_DIALOGFLOW_ID: id của bot ở trên
- DIALOGFLOW_SESSION_ID: id session dialogflow (cái này bạn đặt gì cũng được)
- GOOGLE_APPLICATION_CREDENTIALS: là đường dẫn đến file config dialogflow bại tải xuống lúc nãy mục tiêu của file
.env
này là để hạn chế đặt các mã bí mật bị lộ trong code ở môi trường product thì mình không nhất thiết tệp này nữa mà hãy config chúng vào trong biến môi trường của server.
- Tiếp đến là tệp
starter.js
mình dùng như thế này để có thể viết được ES6 trong project của mình
require('babel-register')(
presets: [ 'env' ]
);
module.exports = require('./server.js');
- tệp giải quyết dữ liệu từ dialogflow
dialogflow.handle.js
import dialogflow from 'dialogflow';
export default class DialogflowHandle
constructor ()
this.query = '';
this.sessionClient = new dialogflow.SessionsClient();
this.sessionPath =
this.sessionClient.sessionPath(
process.env.PROJECT_DIALOGFLOW_ID,
process.env.DIALOGFLOW_SESSION_ID
);
this.request =
session: this.sessionPath,
queryInput:
text:
text: '',
languageCode: 'en-US',
,
,
;
handleMessage (sentence)
this.request.queryInput.text.text = sentence
return new Promise(
(resolve, reject) =>
this.sessionClient.detectIntent(this.request)
.then(resolve)
.catch(reject);
)
- và đây là tệp
server.js
if (process.env.NODE_ENV !== 'production') // Đọc biến môi trường trong file env ở local
var env = require('node-env-file');
env('.env');
import fbApi from 'facebook-chat-api';
import fs from 'fs';
import DialogflowHandle from './dialogflow.handle';
const readFileSestion = () => // Hàm này để đọc file sessions đăng nhập của facebook
try
const file = fs.readFileSync('appstate.json', 'utf8');
return JSON.parse(file);
catch(error)
return null;
;
const appState = readFileSestion();
const credientials = // Tạo biến lưu sesstions, email và mật khẩu fb. (Nêu như đã có sessions và sessions vẫn còn hạn thì không đăng nhập lại)
appState,
email: process.env.FB_EMAIL,
password: process.env.FB_PASSWORD
;
const dialogflowHandle = new DialogflowHandle();
fbApi(credientials, (err, api) =>
if(err) return console.error(err);
fs.writeFileSync('appstate.json', JSON.stringify(api.getAppState())); // khắc ghi sessions mới Sau khi đã refresh
api.listen((err, message) =>
dialogflowHandle.handleMessage(message.body)
.then((data) =>
const result = data[0].queryResult;
api.sendMessage(result.fulfillmentText, message.threadID);
)
.catch((error) =>
api.sendMessage(`Error: $error`, message.threadID);
);
);
);
Để chạy project thì bạn chỉ cần gõ yarn start
Đây chính là hậu quả
Kết luận
Đây là bài viết chỉ dẫn tạo chat bot giản đơn cho account Facebook cá nhân dựa trên module không chủ đạo thức facebook-chat-api
. tuy nhiên nó cũng đã giúp đỡ khá nhiều chức năng. Bạn có khả năng nghiên cứu thêm tại https://github.com/Schmavery/facebook-chat-api
Và dialogflow còn có cực kì nhiều tính năng đang chờ bạn tìm hiểu như ML (Machine Learning), tổng hợp và thống kê, chia loại câu hỏi, …
Cảm ơn các bạn đã xem bài viết của mình. Chúc các bạn thành công!!!!
Nguồn: https://viblo.asia/
Facebook Messenger Bot là một hướng đi mới cho các quản trị viên Facebook Page giúp tương tác với với người dùng của mình một cách tự động. Tính năng này vừa được Facebook cho phép người dùng khởi tạo và sử dụng trong khoảng hơn 1 tháng nay. Để sử dụng, điều duy nhất bạn cần làm là thiết lập một hàm API khá cơ bản, và nó cũng đòi hỏi rất ít kỹ năng về mã hóa nên bạn có thể hoàn toàn làm chủ được nó và không quá khó để thiết lập
- Chatbot Facebook là gì?ứng dụng vào kinh doanh online hiệu quả
- 10 CÁCH ĐỂ XÂY DỰNG CHATBOT BÁN HÀNG ONLINE HIỆU QUẢ
- Hướng dẫn chạy quảng cáo Facebook theo UID và thu phễu khách hàng bằng Chatfuel
Bước 1: Tạo một Facebook App
Yêu cầu trước tiên bạn cần là phải có một Facebook Page, điều đó rất dễ phải không? Và sau đó bạn hãy truy cập vào trang dành cho các nhà phát triển của Facebook tại đây. Tiến hành đăng nhập, sau đó rê chuột vào hình đại diện của mình ở góc phải giao diện trang Facebook Developer và chọn Add a New App.

Hộp thoại lựa chọn nền tảng xuất hiện, bạn hãy nhấn vào “WWW”.

Tiếp theo bạn hãy nhấn vào Skip and Create App ID.

Hộp thoại nhập thông tin xuất hiện, bạn hãy điền các thông tin theo yêu cầu. Phần này bạn có thể điền thế nào cũng được nhưng “có nghĩa” chút sẽ tốt hơn.

Sao khi khởi tạo thành công, bạn sẽ được đưa đến trang tổng quan (Dashboard) của ứng dụng mà mình đã tạo. Ở trang này, chúng ta chỉ chú ý đến 2 mục là ‘Messenger’ và ‘Webhooks’.

Bây giờ bạn hãy nhấn vào mục Messenger và nhấn vào Get Started.

Tại trang tiếp theo, bạn hãy nhấn vào tùy chọn Select a Page ở Token Generation và chọn trang Facebook Page mà bạn đang là quản trị viên để thiết lập Chat Bot.

Hộp thoại xác nhận sẽ xuất hiện khi bạn lựa chọn xong Page, khi đó bạn hãy nhấn OKAY để cấp phép cho ứng dụng được liên kết và hoạt động trên trang Facebook Page mà bạn lựa chọn.

Sau khi hoàn thành, bạn sẽ được cung cấp một dãy kí tự mã hóa ở dòng Page Access Token. Đây là phần rất quan trọng nên bạn cần chú ý trong việc bảo mật. Tiếp theo bạn hãy nhấn vào tùy chọn Setup Webhooks ở bên dưới.

Hộp thoại thiết lập có tên New Page Subscription xuất hiện, bạn hãy để nguyên và đừng đóng lại, giờ chúng ta sẽ sang bước thứ 2.

Bước 2: Thiết lập Botsify
Bạn hãy mở một tab trình duyệt mới và truy cập vào website của Botsify tại đây, sau đó tạo cho mình một tài khoản miễn phí.

Sau khi đăng ký thành công, bạn cần phải truy cập vào email và nhấp vào liên kết được gửi từ Botsify để kích hoạt tài khoản, rồi sau đó truy cập vào trang tổng quan của mình trên Botsify.

Trong trang tổng quan, bạn hãy nhấp vào tùy chọn ‘Create Application’. Trang khởi tạo xuất hiện, bạn hãy điền các thông tin theo yêu cầu.

Trong các dòng thông tin mà Botsify yêu cầu, ngoài ‘Application name’ và ‘Description’ bạn có thể điền tùy ý thì 3 dòng còn lại bạn phải lấy từ phần Facebook App mà mình đã tạo ở trên. Bạn có thể truy cập vào trang Facebook Developer , sau đó tìm đến ứng dụng mình tạo ở trên để lấy các thông tin rồi điền vào dòng tương ứng bên Botsify.

Sau khi đã nhập xong, bạn hãy nhấn vào Create Bot để khởi tạo. Và khi quá trình khởi tạo hoàn thành, bạn sẽ được cung cấp thông tin về phần Webhook để nhập trở lại bên tab Facebook App mà chúng ta đang mở ở trên.

Quay trở lại tab New Page Subscription đang mở ở trên, bạn hãy sao chép dòng Webhook bên Botsify và nhập vào dòng Callback URL, kế đến là sao chép dòng Secret Key bên Botsify và nhập vào dòng Verify Token.

Tiếp theo bạn hãy đánh dấu vào các tùy chọn trong phần Subscription Fields và nhấn ‘Verify and Save’. Sau đó quay lại tab Botsify và nhấn ‘Activate’.

Thế là xong phần kích hoạt Chat Bot, giờ chúng ta sẽ sang bước cuối cùng, đó là cấu hình cho Chat Box.
Bước 3: Cấu hình Chat Bot
Quay trở lại với tab Botsify, bạn hãy nhấn vào tùy chọn Configure Bot.

Ở trang cấu hình, bạn sẽ được cung cấp 2 tùy chọn thiết lập từ đơn giản (Basic Responses) đến nâng cao (Advanced Responses).

Lấy một ví dụ đơn giản, ở đây chúng ta sẽ thử tạo một đoạn chào hỏi đơn giản để đáp lại từ “hiii” mà thành viên gửi đến bạn. Ta sẽ có cú pháp như sau:
Nhấn vào Test Messenger Bot và nhận nội dung “hiii” vào ô chat, sau đó nhấn phím ENTER. Tiếp theo bạn hãy nhấn vào lựa chọn bên dưới (tên tài khoản của bạn trong Botsify) và nhập tin nhắn hồi đáp là “Chào bạn”, sau đó nhấn phím ENTER. Một hộp thoại xác nhận cú pháp sẽ xuất hiện, bạn hạy nhấn “Yes, submit it!” để xác nhận.

Thế là xong, chờ ít phút để Botsify cấu hình và liên kết với trang Facebook Page của bạn. Và từ giờ, nếu người dùng nào có gửi tin nhắn nếu trùng với cú pháp mà bạn thiết lập, Messenger Bot sẽ tự động trả lời theo như tin nhắn mà bạn thiết lập.

Bạn có thể tự do sáng tạo các tin nhắn khác theo ý muốn. Quá tuyệt vời phải không?