Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)
0. 이게 뭐야? 왜 지금 Bot인가?
Microsoft, line에 이어, 1개월에 3사째의 Bot 참가 축제.
왜 이렇게 Bot이 많은가?
그 이유는 Bot이 앱처럼 3rd Party로서 군웅 할거하는 플랫폼이 될 것이라고 각 회사가 예견하고 있기 때문입니다.
Bot은 사용자와 직접 대화하여 정성적인 평가·리액션을 끌어낼 수 있고, 그것을 데이터로서 모은다.
앱이 너무 많아서 화염 속에서 Bot이 뜨겁다.
올해는 Bot의 해, 가까운 장래에, 앱 엔지니어 대신에 Bot 엔지니어가 최강의 프런트 엔드로서 존재하고 있을 것입니다.
1. 우선 Facebook에서 페이지 만들기
웹사이트 또는 Facebook 페이지를 만드는 필요로.
여기에서 사이트 만들기 → htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m / 쿠이 cks rts /? p t t rm = u b
2. Webhook 설정
우선 사이트를 만들면 다음과 같은 페이지가 나온다.
왼쪽 탭에서 Messenger
를 클릭하십시오. →Getting Start!
이 페이지가 되기 때문에, Setup Webhooks
.
그러면 아래 화면에. 여기에서 url과 토큰을 자유롭게 설정할 수 있습니다.
그렇지만, 어플리케이션이 할 수 없기 때문에, 일단 어플리 작성에.
3. 우선 앱 작성
node.js × express로 빨리 만들었기 때문에 그 흐름.
express 명령이없는 사람은npm install express-generator -g
npm이나 node가 없는 사람은 우선 그쪽을 넣자.
또한, 나는 heroku에서 빨리 움직였습니다. 미리 heroku로 앱을 만들 때
$ cd /your/current/path
$ express yourappname
$ cd yourappname
$ git init
$ heroku git:remote -a yourappname
$ git add .
$ git commit -am "make it better"
$ git push heroku master
4. webhook 설정(2번째)
이전 페이지로 돌아가서 heroku의 도메인과 임의로 토큰을 넣고 팔로우 입력란에서 messages에 체크.
저장,,, 할 수 없습니다! !
쿼리로 보내는 내용 반환! 라고 한다. 그래서 편집.
$ vi routes/index.js
/?hub.mode=subscribe&hub.challenge=<value>&hub.verify_token=<validation-token>
에 대한 GET 요청이 온다.
다음과 같이 index.js를 수정했습니다.
routes/index.jsvar express = require('express'),
router = express.Router();
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
module.exports = router;
커밋하고 다시 푸시!
페이지로 돌아가서 등록하면, 이번은 등록 완료.
5. 액세스 토큰 발행
등록 후 페이지에서 페이지 설정 버튼을 클릭합니다.
그러면 다음과 같이 액세스 토큰이 발행됩니다.
6. 마지막으로 항례의 앵무새 반환 bot 작성
routes에 딱딱하게 쓰고 있지만.
그리고, docs를 참고로 이하와 같이 쓴, , , 하지만, POST할 수 없는 사건. 전에 만든 fb 앱이기 때문에 API 버전 2.5 시대였기 때문에 설은 개미.
여기에서 앞은 또 나중에 추기하려고 생각합니다.
→request 모듈의 넣어 잊고 있다고 하는 잠자리 실수였습니다. .
routes/index.jsvar express = require('express'),
request = require('request'),
router = express.Router(),
token = "<your-access-token>";
function sendTextMessage(sender, text) {
var messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
router.post('/', function(req, res, next) {
var messaging_events = req.body.entry[0].messaging,
replayMessages = [];
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
// アレコレしたいことをどうぞ
sendTextMessage(sender, text.substring(0, 200));
}
}
res.sendStatus(200);
});
module.exports = router;
package.json{
"name": "<your-app-name>",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"request": "2.71.0", //←ココ
"serve-favicon": "~2.3.0"
}
}
Reference
이 문제에 관하여(Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
웹사이트 또는 Facebook 페이지를 만드는 필요로.
여기에서 사이트 만들기 → htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m / 쿠이 cks rts /? p t t rm = u b
2. Webhook 설정
우선 사이트를 만들면 다음과 같은 페이지가 나온다.
왼쪽 탭에서 Messenger
를 클릭하십시오. →Getting Start!
이 페이지가 되기 때문에, Setup Webhooks
.
그러면 아래 화면에. 여기에서 url과 토큰을 자유롭게 설정할 수 있습니다.
그렇지만, 어플리케이션이 할 수 없기 때문에, 일단 어플리 작성에.
3. 우선 앱 작성
node.js × express로 빨리 만들었기 때문에 그 흐름.
express 명령이없는 사람은npm install express-generator -g
npm이나 node가 없는 사람은 우선 그쪽을 넣자.
또한, 나는 heroku에서 빨리 움직였습니다. 미리 heroku로 앱을 만들 때
$ cd /your/current/path
$ express yourappname
$ cd yourappname
$ git init
$ heroku git:remote -a yourappname
$ git add .
$ git commit -am "make it better"
$ git push heroku master
4. webhook 설정(2번째)
이전 페이지로 돌아가서 heroku의 도메인과 임의로 토큰을 넣고 팔로우 입력란에서 messages에 체크.
저장,,, 할 수 없습니다! !
쿼리로 보내는 내용 반환! 라고 한다. 그래서 편집.
$ vi routes/index.js
/?hub.mode=subscribe&hub.challenge=<value>&hub.verify_token=<validation-token>
에 대한 GET 요청이 온다.
다음과 같이 index.js를 수정했습니다.
routes/index.jsvar express = require('express'),
router = express.Router();
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
module.exports = router;
커밋하고 다시 푸시!
페이지로 돌아가서 등록하면, 이번은 등록 완료.
5. 액세스 토큰 발행
등록 후 페이지에서 페이지 설정 버튼을 클릭합니다.
그러면 다음과 같이 액세스 토큰이 발행됩니다.
6. 마지막으로 항례의 앵무새 반환 bot 작성
routes에 딱딱하게 쓰고 있지만.
그리고, docs를 참고로 이하와 같이 쓴, , , 하지만, POST할 수 없는 사건. 전에 만든 fb 앱이기 때문에 API 버전 2.5 시대였기 때문에 설은 개미.
여기에서 앞은 또 나중에 추기하려고 생각합니다.
→request 모듈의 넣어 잊고 있다고 하는 잠자리 실수였습니다. .
routes/index.jsvar express = require('express'),
request = require('request'),
router = express.Router(),
token = "<your-access-token>";
function sendTextMessage(sender, text) {
var messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
router.post('/', function(req, res, next) {
var messaging_events = req.body.entry[0].messaging,
replayMessages = [];
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
// アレコレしたいことをどうぞ
sendTextMessage(sender, text.substring(0, 200));
}
}
res.sendStatus(200);
});
module.exports = router;
package.json{
"name": "<your-app-name>",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"request": "2.71.0", //←ココ
"serve-favicon": "~2.3.0"
}
}
Reference
이 문제에 관하여(Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
node.js × express로 빨리 만들었기 때문에 그 흐름.
express 명령이없는 사람은
npm install express-generator -g
npm이나 node가 없는 사람은 우선 그쪽을 넣자.또한, 나는 heroku에서 빨리 움직였습니다. 미리 heroku로 앱을 만들 때
$ cd /your/current/path
$ express yourappname
$ cd yourappname
$ git init
$ heroku git:remote -a yourappname
$ git add .
$ git commit -am "make it better"
$ git push heroku master
4. webhook 설정(2번째)
이전 페이지로 돌아가서 heroku의 도메인과 임의로 토큰을 넣고 팔로우 입력란에서 messages에 체크.
저장,,, 할 수 없습니다! !
쿼리로 보내는 내용 반환! 라고 한다. 그래서 편집.
$ vi routes/index.js
/?hub.mode=subscribe&hub.challenge=<value>&hub.verify_token=<validation-token>
에 대한 GET 요청이 온다.
다음과 같이 index.js를 수정했습니다.
routes/index.jsvar express = require('express'),
router = express.Router();
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
module.exports = router;
커밋하고 다시 푸시!
페이지로 돌아가서 등록하면, 이번은 등록 완료.
5. 액세스 토큰 발행
등록 후 페이지에서 페이지 설정 버튼을 클릭합니다.
그러면 다음과 같이 액세스 토큰이 발행됩니다.
6. 마지막으로 항례의 앵무새 반환 bot 작성
routes에 딱딱하게 쓰고 있지만.
그리고, docs를 참고로 이하와 같이 쓴, , , 하지만, POST할 수 없는 사건. 전에 만든 fb 앱이기 때문에 API 버전 2.5 시대였기 때문에 설은 개미.
여기에서 앞은 또 나중에 추기하려고 생각합니다.
→request 모듈의 넣어 잊고 있다고 하는 잠자리 실수였습니다. .
routes/index.jsvar express = require('express'),
request = require('request'),
router = express.Router(),
token = "<your-access-token>";
function sendTextMessage(sender, text) {
var messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
router.post('/', function(req, res, next) {
var messaging_events = req.body.entry[0].messaging,
replayMessages = [];
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
// アレコレしたいことをどうぞ
sendTextMessage(sender, text.substring(0, 200));
}
}
res.sendStatus(200);
});
module.exports = router;
package.json{
"name": "<your-app-name>",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"request": "2.71.0", //←ココ
"serve-favicon": "~2.3.0"
}
}
Reference
이 문제에 관하여(Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ vi routes/index.js
var express = require('express'),
router = express.Router();
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
module.exports = router;
등록 후 페이지에서 페이지 설정 버튼을 클릭합니다.
그러면 다음과 같이 액세스 토큰이 발행됩니다.
6. 마지막으로 항례의 앵무새 반환 bot 작성
routes에 딱딱하게 쓰고 있지만.
그리고, docs를 참고로 이하와 같이 쓴, , , 하지만, POST할 수 없는 사건. 전에 만든 fb 앱이기 때문에 API 버전 2.5 시대였기 때문에 설은 개미.
여기에서 앞은 또 나중에 추기하려고 생각합니다.
→request 모듈의 넣어 잊고 있다고 하는 잠자리 실수였습니다. .
routes/index.jsvar express = require('express'),
request = require('request'),
router = express.Router(),
token = "<your-access-token>";
function sendTextMessage(sender, text) {
var messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
router.post('/', function(req, res, next) {
var messaging_events = req.body.entry[0].messaging,
replayMessages = [];
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
// アレコレしたいことをどうぞ
sendTextMessage(sender, text.substring(0, 200));
}
}
res.sendStatus(200);
});
module.exports = router;
package.json{
"name": "<your-app-name>",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"request": "2.71.0", //←ココ
"serve-favicon": "~2.3.0"
}
}
Reference
이 문제에 관하여(Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
var express = require('express'),
request = require('request'),
router = express.Router(),
token = "<your-access-token>";
function sendTextMessage(sender, text) {
var messageData = {
text:text
}
request({
url: 'https://graph.facebook.com/v2.6/me/messages',
qs: {access_token:token},
method: 'POST',
json: {
recipient: {id:sender},
message: messageData,
}
}, function(error, response, body) {
if (error) {
console.log('Error sending message: ', error);
} else if (response.body.error) {
console.log('Error: ', response.body.error);
}
});
}
router.get('/', function(req, res, next) {
if (req.query['hub.verify_token'] === '<validation_token>') {
res.send(req.query['hub.challenge']);
}
res.send('Error, wrong validation token');
});
router.post('/', function(req, res, next) {
var messaging_events = req.body.entry[0].messaging,
replayMessages = [];
for (i = 0; i < messaging_events.length; i++) {
event = req.body.entry[0].messaging[i];
sender = event.sender.id;
if (event.message && event.message.text) {
text = event.message.text;
// アレコレしたいことをどうぞ
sendTextMessage(sender, text.substring(0, 200));
}
}
res.sendStatus(200);
});
module.exports = router;
{
"name": "<your-app-name>",
"version": "0.0.0",
"private": true,
"scripts": {
"start": "node ./bin/www"
},
"dependencies": {
"body-parser": "~1.13.2",
"cookie-parser": "~1.3.5",
"debug": "~2.2.0",
"express": "~4.13.1",
"jade": "~1.11.0",
"morgan": "~1.6.1",
"request": "2.71.0", //←ココ
"serve-favicon": "~2.3.0"
}
}
Reference
이 문제에 관하여(Messenger로 간단한 Bot 만들기 (Facebook Messenger Platform from F8)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/pochi-sato/items/f3f5598e36c1fa92d840텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)