FACEBOOK CHAT BOT
HANDS ON
GLOBAL CREATORS MEETUP
VOL.5
1. SETUP
1, SETUP
1-1. Create a Facebook Page
▸https://developers.facebook.com/quickstarts/?platform=web
1, SETUP
1-1. Create a Facebook Page (Cont.)
▸Unpublished the page
▸Click “Messanger”
1, SETUP
1-1. Create a Facebook Page (Cont.)
▸Create a Facebook page
▸https://www.facebook.com/pages/create/
▸Then, select the created page
1, SETUP
1-2. Install node
▸Install nodebrew
▸nodebrew: https://github.com/hokaccha/nodebrew
▸nodebrew install-binary v6.6.0
▸nodebrew use v6.6.0
1, SETUP
1-3. App Directory Structure with Express
▸npm install express-generator -g
▸express gsp-21061008
▸cd express gsp-21061008
▸npm install
▸npm start
▸Access to http://localhost:3000
1, SETUP
1-4. Git Setup
▸Git Install
▸Git Init
▸git init
▸add .gitignore
▸exclude “node_modules/” dir
▸Create a github repository
1, SETUP
1-5. Heroku Account & Repository
▸https://id.heroku.com/login
▸Create an App
2. CODING
2, CODING
2-1. Setup Webhook
router.get('/webhook', function(req, res) {
if (req.query['hub.verify_token'] === <Your_Veirfy_Token>) {
res.send(req.query['hub.challenge']);
} else {
res.send('Error, wrong validation token’);
}
});
▸https://developers.facebook.com/docs/messenger-platform/quickstart/
▸Write the following vilification code into your “routes/index.js”
2, CODING
2-2. Receive Message
router.post('/webhook/', function (req, res) {
const events = req.body.entry[0].messaging;
for (i = 0; i < events.length; i++) {
const event = req.body.entry[0].messaging[i];
if (event.message && event.message.text) {
const text = event.message.text;
console.log(text)
}
}
res.sendStatus(200);
});
2, CODING
2-3. Set Access Token
▸Copy your FB page access token
▸Set as FB_ACCESS_TOKEN in heroku app
2, CODING
2-4. Post Message
▸npm install —save request
var request = require(‘request’)
const ACCESS_TOKEN = process.env.FB_ACCESS_TOKEN
function sendTextMessage(sender, text) {
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token: ACCESS_TOKEN},
method: 'POST',
json: {
recipient: {id: sender},
message: {text: text}
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
2, CODING
2-4. (Cont.) Post Message
▸modify web hook code
router.post('/webhook/', function (req, res) {
const events = req.body.entry[0].messaging;
for (i = 0; i < events.length; i++) {
const event = req.body.entry[0].messaging[i];
const sender = event.sender.id;
if (event.message && event.message.text) {
const text = event.message.text;
console.log(text)
sendTextMessage(sender, "Text received, echo: " + text);
}
}
res.sendStatus(200);
});
▸Sample code: https://github.com/tejitak/gsc-test-20161006/blob/master/routes/index.js
3. DEPLOY
3. DEPLOY
3-1. Deploy to Heroku
▸Configure github repository in your heroku app
▸git add -A
▸git commit -m “first commit”
▸git push origin master
▸Or, Install heroku toolbelt
▸ https://devcenter.heroku.com/articles/heroku-command-line
▸ heroku git:remote -a yourappname
▸ git push heroku master
3, DEPLOY
3-2. Setup webhook verification
▸Enter your <heroku app url>/webhook
▸Enter your verify token
▸Subscribe a created page
3, DEPLOY
3-3. Try a Message to Bot
4.
ADVANCED
4. ADVANCED
4-1. Customize Your Bot
▸Think what you want to build
THANKS!
Takuya Tejima
@tejitak

Global Startup Creators vol.5 - Facebook bot development handson

  • 1.
    FACEBOOK CHAT BOT HANDSON GLOBAL CREATORS MEETUP VOL.5
  • 2.
  • 3.
    1, SETUP 1-1. Createa Facebook Page ▸https://developers.facebook.com/quickstarts/?platform=web
  • 4.
    1, SETUP 1-1. Createa Facebook Page (Cont.) ▸Unpublished the page ▸Click “Messanger”
  • 5.
    1, SETUP 1-1. Createa Facebook Page (Cont.) ▸Create a Facebook page ▸https://www.facebook.com/pages/create/ ▸Then, select the created page
  • 6.
    1, SETUP 1-2. Installnode ▸Install nodebrew ▸nodebrew: https://github.com/hokaccha/nodebrew ▸nodebrew install-binary v6.6.0 ▸nodebrew use v6.6.0
  • 7.
    1, SETUP 1-3. AppDirectory Structure with Express ▸npm install express-generator -g ▸express gsp-21061008 ▸cd express gsp-21061008 ▸npm install ▸npm start ▸Access to http://localhost:3000
  • 8.
    1, SETUP 1-4. GitSetup ▸Git Install ▸Git Init ▸git init ▸add .gitignore ▸exclude “node_modules/” dir ▸Create a github repository
  • 9.
    1, SETUP 1-5. HerokuAccount & Repository ▸https://id.heroku.com/login ▸Create an App
  • 10.
  • 11.
    2, CODING 2-1. SetupWebhook router.get('/webhook', function(req, res) { if (req.query['hub.verify_token'] === <Your_Veirfy_Token>) { res.send(req.query['hub.challenge']); } else { res.send('Error, wrong validation token’); } }); ▸https://developers.facebook.com/docs/messenger-platform/quickstart/ ▸Write the following vilification code into your “routes/index.js”
  • 12.
    2, CODING 2-2. ReceiveMessage router.post('/webhook/', function (req, res) { const events = req.body.entry[0].messaging; for (i = 0; i < events.length; i++) { const event = req.body.entry[0].messaging[i]; if (event.message && event.message.text) { const text = event.message.text; console.log(text) } } res.sendStatus(200); });
  • 13.
    2, CODING 2-3. SetAccess Token ▸Copy your FB page access token ▸Set as FB_ACCESS_TOKEN in heroku app
  • 14.
    2, CODING 2-4. PostMessage ▸npm install —save request var request = require(‘request’) const ACCESS_TOKEN = process.env.FB_ACCESS_TOKEN function sendTextMessage(sender, text) { request({ url: 'https://graph.facebook.com/v2.6/me/messages', qs: {access_token: ACCESS_TOKEN}, method: 'POST', json: { recipient: {id: sender}, message: {text: text} } }, function(error, response, body) { if (error) { console.log('Error sending message: ', error); } else if (response.body.error) { console.log('Error: ', response.body.error); } }); }
  • 15.
    2, CODING 2-4. (Cont.)Post Message ▸modify web hook code router.post('/webhook/', function (req, res) { const events = req.body.entry[0].messaging; for (i = 0; i < events.length; i++) { const event = req.body.entry[0].messaging[i]; const sender = event.sender.id; if (event.message && event.message.text) { const text = event.message.text; console.log(text) sendTextMessage(sender, "Text received, echo: " + text); } } res.sendStatus(200); }); ▸Sample code: https://github.com/tejitak/gsc-test-20161006/blob/master/routes/index.js
  • 16.
  • 17.
    3. DEPLOY 3-1. Deployto Heroku ▸Configure github repository in your heroku app ▸git add -A ▸git commit -m “first commit” ▸git push origin master ▸Or, Install heroku toolbelt ▸ https://devcenter.heroku.com/articles/heroku-command-line ▸ heroku git:remote -a yourappname ▸ git push heroku master
  • 18.
    3, DEPLOY 3-2. Setupwebhook verification ▸Enter your <heroku app url>/webhook ▸Enter your verify token ▸Subscribe a created page
  • 19.
    3, DEPLOY 3-3. Trya Message to Bot
  • 20.
  • 21.
    4. ADVANCED 4-1. CustomizeYour Bot ▸Think what you want to build
  • 22.