#1.環境
- NodeJs
- Heroku Account
#2.Botの方設定
##2.1.新しいプロジェクトを作成&NodeJsをインストール
$ mkdir messengerbot
$ cd messengerbot/
$ npm init
Herokuにデプロイするために、express body-parser requestというパッケージをインストール
npm install express body-parser request --save
package.json
を開いて、script
ハッシュの中にstart
フィルドを追加します。
{
"name": "anothertestbot",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js"
},
"author": "Duc",
"license": "ISC",
"dependencies": {
"body-parser": "^1.15.1",
"express": "^4.13.4",
"request": "^2.72.0"
}
}
先作ったばかりmessengerbotフォルダーの中に、index.js
ファイルを作成
var express = require('express');
var bodyParser = require('body-parser');
var request = require('request');
var app = express();
app.use(bodyParser.urlencoded({extended: false}));
app.use(bodyParser.json());
app.listen((process.env.PORT || 3000));
// Server frontpage
// make sure the server is up and running when visit app’s web address.
app.get('/', function (req, res) {
res.send('This is TestBot Server');
});
// Facebook Webhook
app.get('/webhook', function (req, res) {
if (req.query['hub.verify_token'] === 'testbot_verify_token') {
res.send(req.query['hub.challenge']);
} else {
res.send('Invalid verify token');
}
});
testbot_verify_token
はこのAppはMessengerBotのために確認します。
##2.2. Herokuにプッシュ
$ git init
.gitignore
の中にnode_module
を追加する
node_modules/
そして、
$ git add .
$ git commit -m 'Register Facebook Webhook'
Herokuアカウントは必要です。登録
現在環境はHerokuがあるかどうか確認する。
$ heroku version
そしてHerokuにログインとSSHを追加する
$ heroku login
$ heroku keys:add
Herokuのホストを作成
$ heroku create
Creating glacial-scrubland-xxxx... done, stack is cedar
http://glacial-scrubland-xxxx.herokuapp.com/ |
Herokuにプッシュ
$ git push heroku master
#3. FacebookApp設定
##ログインとFacebookページを作成 作成URL
##FacebookAppを作成
Quickstartをアクセスして、basic setup
リンクをクリックして,
アプリの情報を入力
##page_access_token
を作成とwebhook
を設定
設定完了したあとで、Facebookページうぃsubcribeするのは必要です.
$ curl -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN"
PAGE_ACCESS_TOKEN
は先作成しました。
resultを届けます
{"success": true}