페이스 북의 "메신저 봇"기능은 새로운 것이 아니며, 굉장히 많은 봇이 이미 존재한다. 그러나 자신 만의 봇을 만드는 법에 관한 리소스는 부족하며 Facebook Graph API를 처음 접하는 사람들에게는 설명이 부족합니다. 메신저 봇은 이제 SSL 보안 웹 훅 콜백 URL (나중에 자세히 설명)을 사용해야하며 SSL 설정은 모든 사람이 아니며 비용도 들게됩니다.
이 기사에서는 간단한 Facebook 메신저 봇을 만드는 과정을 전반적으로 살펴 보겠습니다. Facebook의 자체 설명서가 제대로 설명되지 않았기 때문입니다. https 프로토콜을 사용하는 클라우드 앱을 설정하고, Node.js (자바 스크립트, 서버 측 언어)에서 로봇을 코딩하고, git을 사용하여 코드를 클라우드 애플리케이션에 푸시하고, Facebook 메신저에서 테스트 해 보겠습니다.
봇 설치
노트북에 노드가 설치되어 있어야합니다. 그렇지 않은 경우 Node 웹 사이트에서 다운로드하여 설치하십시오.
작업이 끝나면 봇의 설정을 계속할 수 있습니다. 아래 단계를 따르십시오.
1. 터미널을 시작합니다.
2. 코드를 보관할 별도의 디렉토리가 필요합니다.
- 새 디렉토리 만들기
mkdir testbot
- 작업 디렉토리를 방금 작성한 디렉토리로 변경하십시오
cd testbot
3. 다음으로 노드 응용 프로그램을 초기화하십시오. npm init
- 응용 프로그램에 대한 정보를 입력하라는 메시지가 나타나면 Enter 키를 눌러 기본값을 사용하십시오.
4. 패키지 설치 npm install express body-parser request --save
- 명령이 실행되고 경고가 표시됩니다. 그들을 무시하라.
5. Finder에서 생성 한 " testbot "디렉토리를 열고 " package.json "파일을 찾습니다. 이것을 Sublime Text와 같은 편집기에서여십시오.
6.이 파일에서 줄을 추가해야합니다. "start": "node index.js"
- 이전 줄 끝에 ", " 을 추가하는 것을 잊지 마십시오.
7. 다음으로 Sublime Text에 새 파일을 만들고 그 안에 다음 코드를 넣습니다.
[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));
app.get ( '/', function (req, res) {
res.send ( 'This is TestBot Server');
});
app.get ( '/ webhook', function (req, res)) {
if (req.query [ 'hub.verify_token'] === 'testbot_verify_token') {
res.send (req.query [ 'hub.challenge']);
} else {
res.send ( '유효하지 않은 확인 토큰');
}
});
[/ js]
이 파일을 index.js 로 저장하십시오.
참고 : 13 행에서 'hub.verify_token'값은 'testbot_verify_token'으로 설정되어 있으므로이 값은 Facebook에서 웹 훅을 만들 때 사용 되므로이 값을 기억하십시오.
Git 저장소 만들기
이제 봇의 콜백 처리를 설정 했으므로 코드를 Heroku로 푸시해야합니다. 이를 위해 디렉토리에 git 저장소를 만들어야합니다.
참고 : "git"은 파일 및 소프트웨어 코드의 버전 제어 시스템입니다. Wikipedia에서 더 자세히 읽을 수 있습니다.
git 저장소를 만드는 것은 쉽고 몇 가지 터미널 명령 만 필요합니다.
참고 : 터미널의 " testbot "디렉토리 안에 있는지 확인하십시오. pwd
명령을 터미널에 입력하여이 작업을 수행 할 수 있습니다.
git 저장소를 만들려면 다음 단계를 따르세요.
1. git init
2. git add .
3. git commit -m "Register Facebook Webhook"
설치 Heroku
Facebook의 개발자 페이지에 들어가기 전에 Facebook에서 이야기 할 수있는 콜백 URL이 필요합니다. 이 URL은 https 프로토콜 을 사용해야합니다. 즉, 웹 사이트에 SSL 인증서를 설치해야합니다. 그러나 이것은 Facebook 메신저 봇에 대한 초보자 가이드이므로, 상황을 복잡하게 만들지 않겠습니다. 우리는 Heroku를 사용하여 코드를 배포 할 것입니다. Heroku는 귀하의 응용 프로그램에 대한 https URL을 제공하며 우리의 (매우 기본적인) 요구를 충족시키는 무료 계획을 가지고 있습니다.
Heroku 웹 사이트로 이동하여 직접 등록하십시오.
참고 : "주요 개발 언어 선택"필드에 "다른 언어를 사용합니다"를 사용하십시오.
작업이 끝나면 OS 용 Heroku 툴벨 (Mac 용)을 설치하고 설치하십시오. 이렇게하면 터미널 (또는 Windows의 명령 프롬프트)에서 Heroku에 액세스 할 수 있습니다.
다음으로, 우리는 우리의 봇에 대한 전체 코드를 담고있는 앱을 Heroku에 생성 할 것입니다. 아래 단계를 따르십시오.
1. 터미널 시작
2. heroku login
입력하십시오.
- 이메일과 비밀번호를 입력하라는 메시지가 나타납니다.
- 이메일을 입력하고 Enter 키를 누릅니다. 그런 다음 비밀번호를 입력하고 Enter 키를 누릅니다.
- heroku에 로그인했습니다.
3. heroku create
입력하십시오.
- 이것은 Heroku에서 응용 프로그램을 만들고 하이퍼 링크를 제공합니다. 링크가 https 프로토콜을 사용하고 있습니다. 진정해?
4. 이제 앱 코드를 Heroku로 푸시 할 수 있습니다. git push heroku master
5.이 작업이 끝나면 기본적으로 앱이 실행되며 브라우저의 링크를 방문하여 모든 것이 잘 작동하는지 확인할 수 있습니다. " This is TestBot Server "라는 웹 페이지가 열립니다.
Facebook 설정
우리의 봇과 페이스 북을 연결할 때입니다! 새로운 Facebook 페이지를 만들거나 소유하고있는 기존 페이지를 사용해야합니다. 새로운 Facebook 페이지를 작성하는 방법을 알려 드리겠습니다.
1. Facebook으로 이동하여 새 페이지를 만듭니다.
- 원하는 범주로 페이지를 만들 수 있습니다. 특별한 이유없이 회사 / 조직을 선택합니다.
2. Facebook이 보여주는 다음 단계는 선택 사항이며 건너 뛸 수 있습니다.
3. 다음으로 Facebook 개발자 웹 사이트로 이동하십시오.
- 오른쪽 상단에서 마우스를 ' 내 앱 '으로 이동 한 다음 드롭 다운 메뉴에서 ' 새 앱 추가 '를 클릭하십시오.
- 페이스 북에서 플랫폼을 선택하라는 메시지가 나오면 " 기본 설정 "을 클릭하십시오.
4. 앱 이름 및 이메일 주소에 대한 세부 정보를 입력하십시오.
- 카테고리에서 " Apps for Pages "를 선택하십시오.
- " Create App ID "를 클릭하십시오.
5. 앱의 대시 보드로 이동합니다. 사이드 바에서 ' + 제품 추가 '로 이동하고 ' 시작 '버튼을 클릭하여 ' 메신저 '를 선택하십시오.
6. " Webhooks 설정 "을 선택하십시오.
7. "Callback URL"을 Heroku 앱의 URL로 바꾸고, index.js 파일에 사용 된 토큰으로 토큰을 확인하고, 다음 서브 스크립 션 필드를 선택하여 필요한 필드를 채우십시오.
- message_deliveries
- 메시지
- message_optins
- messaging_postbacks
참고 : Facebook이 URL을 ping하려고 할 때 index.js가 필요한 기능을 실행하도록 " / webhook "를 콜백 URL에 추가해야합니다. "Verify Token"을 확인할 수 있습니다.
8. " 확인 및 저장 "을 클릭 하십시오 .
9. " 토큰 생성 "섹션에서 " 페이지 선택 "을 클릭하고 이전에 작성한 페이지를 선택하십시오.
이렇게하면 " 페이지 액세스 토큰 "이 생성되어 어딘가에 저장됩니다. 나중에 필요할 것입니다.
10. 마지막 단계에서 생성 된 Page Access Token을 사용하여 앱에 POST 쿼리를 만들어야합니다. 이것은 터미널에서 쉽게 할 수 있습니다. 다음 명령을 실행 하여 PAGE_ACCESS_TOKEN을 생성 한 페이지 액세스 토큰으로 바꿉니다 .
curl -X POST "//graph.facebook.com/v2.6/me/subscribed_apps?access_token=PAGE_ACCESS_TOKEN"
터미널에서 " 성공 "응답을 받아야합니다.
Heroku 설정 더보기
그래, 아직 안 끝났어. 거의 없습니다.
1. Heroku 웹 사이트로 이동하여 전자 메일 ID로 로그인하십시오.
2. "대시 보드"에서 앱을 찾고 클릭하십시오.
3. 설정 탭으로 이동하십시오.
4. " Config Vars 표시 "를 클릭하십시오.
5. PAGE_ACCESS_TOKEN을 " config var "로 추가 하고 " 추가 "를 클릭하십시오.
실제 봇 코딩
이제 우리는 꿀꿀 거리는 일을 마쳤으므로 실제로 중요한 일에 집중할 수 있습니다. 즉, 로봇이 메시지에 응답하게 만듭니다. 먼저, 받는 메시지를 단순히 에코하는 봇을 디자인 할 것입니다. 결국이 간단한 작업을 위해서는 상당한 양의 코드가 필요합니다.
1. 메시지 수신기 코딩
봇이 메시지를 에코하기 전에 메시지를 수신 할 수 있어야합니다. 먼저 해보 죠.
index.js 파일에 다음 코드를 추가합니다.
[js]
app.post ( '/ webhook', function (req, res)) {
var events = req.body.entry [0] .messaging;
for (i = 0; i <events.length; i ++) {
var event = events [i];
if (event.message && event.message.text) {
sendMessage (event.sender.id, {text : "Echo :"+ event.message.text});
}
}
res.sendStatus (200);
});
[/ js]
이 함수는받은 메시지를 확인한 다음 메시지에 텍스트가 있는지 확인합니다. 받은 메시지의 텍스트를 찾으면 보낸 사람의 ID와 보낼 텍스트를 전달하여 sendMessage (나중에 표시됨) 함수를 호출합니다. 다음 값과 그 의미를 이해하는 것이 중요합니다.
- event.message.text는 메시지에서 수신 된 텍스트입니다. 예를 들어, 누군가 "Hello"라는 메시지를 우리의 봇에게 보낸다면, event.message.text의 값은 "Hello"가 될 것입니다.
- event.sender.id는 봇에 메시지를 보낸 사람의 ID입니다. 이것은 봇이 응답을 처리 할 대상을 알 수 있도록하기 위해 필요합니다.
2. sendMessage 함수 코딩
이제 "sendMessage"함수를 코딩 할 수 있습니다.
[js]
함수 sendMessage (recipientId, message) {
의뢰({
url : '//graph.facebook.com/v2.6/me/messages',
qs : {access_token : process.env.PAGE_ACCESS_TOKEN},
메소드 : 'POST',
json : {
받는 사람 : {id : recipientId},
메시지 : 메시지,
}
}, function (오류, 응답, 본문) {
if (error) {
console.log ( '오류 보내는 메시지 :', 오류);
} else if (response.body.error) {
console.log ( 'Error :', response.body.error);
}
});
};
[/ js]
"sendMessage"함수는 두 개의 매개 변수를 사용합니다.
- recipientId
- 메시지
메시지를 올바른 사용자에게 보낼 수 있도록 recipientId가 필요합니다.
메시지는 응답에서 전송할 실제 텍스트입니다.
3. 변경 사항을 Heroku로 보내기
위 단계를 완료했다면 봇은 수신 된 텍스트를 에코 백 할 수 있어야합니다. 하지만 먼저, Heroku에서 호스팅되는 응용 프로그램에 변경 사항을 적용해야합니다. 이렇게하려면 아래 단계를 따르십시오.
1. 터미널을 시작합니다.
2. 디렉토리를 testbot 디렉토리로 변경하십시오.
cd testbot
3. 다음 단계를 수행하십시오.
- 자식 추가.
- 참고 : "git add"끝에 "."이 있습니다.
- git commit -m "첫 번째 커밋"
- git push heroku master
4. 이제 페이지에 메시지를 보내면 봇이 메시지를 다시 표시합니다.
조건부 응답 일명 봇 똑똑한 만들기
우리는 Facebook 메신저 봇이 특정 키워드에 따라 반응하도록 텍스트 매칭을 사용할 수 있습니다.
이를 위해 다른 함수를 추가해야합니다. 나는 "conditionalResponses"라고 이름을 짓고 있지만, 선호하는 이름을 선택할 수 있습니다.
1. conditionalResponses 함수 코딩
[js]
function conditionalResponses (recipientId, text) {
text = text || "";
var what = text.match (/ what / gi); // 텍스트 문자열에 "what"이라는 단어가 포함되어 있는지 확인합니다. 대소 문자 무시
varGadget-Info.com = text.match (/ beebom / gi); // 텍스트 문자열에 "beebom"이라는 단어가 포함되어 있는지 확인합니다. 대소 문자 무시
var who = text.match (/ who / gi); // 텍스트 문자열에 "who"라는 단어가 포함되어 있는지 확인합니다. 대소 문자 무시
var you = text.match (/ you / gi); // 텍스트 문자열에 "you"이라는 단어가 포함되어 있는지 확인합니다. 대소 문자 무시
// 텍스트에 "what"과 "beebom"이 모두 포함 된 경우 다음과 같이하십시오.
if (what! = null &&; Gadget-Info.com! = null) {
메시지 = {
텍스트 : "Beebom은 기술 자원을 제공하는 웹 사이트입니다."
}
sendMessage (recipientId, message);
참을 돌려라.
}
// 텍스트에 "who"와 "you"가 모두 포함 된 경우 다음과 같이하십시오.
if (who! = null && you! = null) {
메시지 = {
텍스트 : "나는 온라인에서 내 정체성에 대해 논하지 말 것을 요청 받았다."
}
sendMessage (recipientId, message);
참을 돌려라.
}
// 일치하는 것이 없으면 false를 반환하여 내부 함수의 실행을 계속합니다.
false를 반환;
};
[/ js]
4 ~ 7 행에서 특정 단어에 대해 수신 된 문자열을 일치시키는 것에 따라 변수를 정의했습니다. "text.match ()"사용에 대한 가장 좋은 점은 정규식 (일반적으로 regex라고하며 여기에서 자세히 읽음)을 사용한다는 것입니다. 수신 된 텍스트의 일부 단어조차도 text.match ()에서 언급 한 단어 중 하나와 일치하는 한 변수가 null이되지 않기 때문에 우리에게는 좋습니다. 즉, 수신 메시지가 "What 's Beebom"일 경우 "What 's"에 "what"이라는 단어가 포함되어 있기 때문에 "var what"및 "var beebom"은 null이되지 않습니다. 그래서 우리는 누군가가 "무엇"이라고 말할지 모르는 모든 변형에 대해 추가 진술을 작성하는 것으로부터 구원받습니다.
2. 메시지 수신기 편집
또한 수신 된 텍스트를 "conditionalResponses"함수와 일치 시키려고 코딩 한 메시지 수신기를 편집해야합니다.
[js]
app.post ( '/ webhook', function (req, res)) {
var events = req.body.entry [0] .messaging;
for (i = 0; i <events.length; i ++) {
var event = events [i];
if (event.message && event.message.text) {
// 수신 된 메시지가 조건부 응답에 적합한 지 먼저 확인합니다.
if (! conditionalResponses (event.sender.id, event.message.text)) {
// 수신하지 않은 경우 수신 된 메시지를 발신자에게 다시 반향합니다.
sendMessage (event.sender.id, {text : "Echo :"+ event.message.text});
}
}
}
res.sendStatus (200);
});
[/ js]
청취자의 변화는 매우 과장되어 보일지 모르지만 그 효과는 확실합니다. 이제 리스너는 조건부 응답으로 응답하려고 시도하고 수신 된 메시지에 대해 유효한 조건이 없으면 단순히 메시지를 사용자에게 반향합니다.
3. 변경 사항을 Heroku로 보내기
새로운 기능을 사용해보기 전에 업데이트 된 코드를 Heroku에서 호스팅되는 앱으로 푸시해야합니다. 이렇게하려면 아래 단계를 따르십시오.
1. 터미널을 시작합니다.
2. 디렉토리를 testbot 디렉토리로 변경하십시오.
cd testbot
3. 다음 단계를 수행하십시오.
- 자식 추가.
- 참고 : "git add"끝에 "."이 있습니다.
- git commit -m "조건부 기능 추가하기"
- git push heroku master
4. 이제 페이지에 메시지를 보내면 봇이 메시지를 다시 표시합니다.
더 많은 기능
이제 우리의 봇은 잘 구성된 구조화 된 응답으로 작은 명령 집합에 응답합니다. 그러나 여전히 유용하지는 않습니다. 우리의 봇을 " 기능적인 "소프트웨어로 만들기 위해 코드를 조금 더 변경해 보겠습니다. 우리는 많은 기능을 개편 할 것이고, 한 두 개 더 추가하면 흥분 할 것이다.
1. 메시지 수신기 편집
이 단계에서 우리의 메시지 청취자는 올바르게 작동합니다. 그러나 매우 형식이 좋지는 않으며 " 조건 검사 "를 추가하기 위해 중첩 된 if 문을 계속 늘리면 실행시 이해하기가 어렵고 느리게 보입니다. 우리는 그것을 원하지 않습니다, 지금, 우리가합니까? 몇 가지 사항을 변경해 보겠습니다.
참고 : 메시지 수신자에는 "res.sendStatus (200)"라는 코드 줄이 있습니다.이 줄은 상태 200 코드를 Facebook에 보내서 함수가 성공적으로 실행되었음을 알려줍니다. Facebook의 문서에 따르면 Facebook은 메시지가 통과하지 않고 코드 실행을 중단하기 전에 최대 20 초 동안 200 상태를 기다립니다.
새로운 메시지 리스너는 다음과 같습니다. 우리는 " res.sendStatus (200) "명령을 사용하여 조건이 일치하고 실행되는 즉시 함수의 실행을 중지합니다.
[js]
app.post ( '/ webhook', function (req, res)) {
var events = req.body.entry [0] .messaging;
for (i = 0; i <events.length; i ++) {
var event = events [i];
if (event.message && event.message.text) {
// introResponse 조건에 대한 첫 번째 메시지 텍스트 확인
if (introResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}
// 더 나은 이름이 없기 때문에 나는이 newResponse라고 불렀다 : p; 다음 확인
else if (newResponse (event.sender.id, event.message.text)) {
res.sendStatus (200);
}
// else, 원래 메시지를 echo합니다.
else {
// echo를 유효한 명령 목록으로 대체합니다.
sendMessage (event.sender.id, {text : "Echo :"+ event.message.text});
}
}
}
res.sendStatus (200);
});
[/ js]
2. newResponse 함수 코딩하기
이제 우리의 메시지 수신기는 "newResponse" 의 조건 집합에 대해 메시지 텍스트를 검사하지만, 먼저 newResponse 함수를 코딩해야합니다. 이 함수를 사용하여 사용자가 theGadget-Info.com 웹 사이트에서 기사 제안 을 요청했는지 확인하고 웹 사이트 에서 검색어를 검색 한 다음 사용자에게 링크 를 표시합니다. 다시 한번, 정규 표현식을 사용하여 특정 키워드와 텍스트를 일치시킵니다.
[js]
함수 newResponse (recipientId, text) {
text = text || "";
var suggest = text.match (/ suggest / gi);
var random = text.match (/ random / gi);
var article = text.match (/ article / gi);
var iphone = text.match (/ iphone / gi);
var android = text.match (/ android / gi);
var mac = text.match (/ mac / gi);
var browser = text.match (/ browser / gi);
var vpn = text.match (/ vpn / gi);
// 사용자가 기사 제안을 전혀 요구하지 않는지 확인합니다.
if (suggest! = null && article! = null) {
var query = "";
// 기사 추천이 쿼리되는 경우 사용자가 찾고있는 주제를 확인하십시오.
if (android! = null) {
query = "Android";
} else if (mac! = null) {
query = "Mac";
} else if (iphone! = null) {
query = "iPhone";
} else if (브라우저! = null) {
query = "브라우저";
} else if (vpn! = null) {
query = "VPN";
}
sendButtonMessage (recipientId, query);
진실을 되 돌린다
}
false를 반환;
};
[/ js]
우리는 "sendButtonMessage" 라는 다른 커스텀 함수를 사용하여 사용자가 기사 제안을 요구할 때 메시지를 보냅니다. 우리는 이것을 다음으로 만들 것이다.
3. sendButtonMessage 함수 코딩
sendButtonMessage 함수는 받는 사람 ID 와 쿼리 라는 두 개의 매개 변수를 사용 합니다. 받는 사람 ID는 메시지를 보내야하는 사용자를 식별하는 데 사용되며 쿼리는 사용자가 기사 제안을 원하는 항목을 식별하는 데 사용됩니다.
[js]
함수 sendButtonMessage (recipientId, query) {
var messageData = {
받는 사람 : {
id : recipientId
},
메시지: {
첨부 파일 : {
유형 : "템플릿",
페이로드 : {
template_type : "버튼",
텍스트 : "이것은 내가 찾은 것"+ 쿼리,
버튼 : [{
type : "web_url",
url : "//www.beebom.com/?s="+query,
title : "Beebom :"+ query
}]
}
}
}
};
callSendAPI (messageData);
}
[/ js]
다시 한번 우리는 커스텀 함수를 사용하고 있습니다; 이번에 기사 링크와 함께 최종 메시지를 사용자에게 보냅니다. 이 함수는 여러 가지면에서 이전에 코딩 한 "sendMessage" 함수와 유사하지만 사용자가 작성한 쿼리로 메시지 데이터가 변경되기 때문에 메시지 데이터를 사용하는 방식이 더 일반적입니다.
4. callSendAPI 함수 코딩하기
"callSendAPI" 함수는 "messageData" 라는 단일 매개 변수를 사용합니다. 이 매개 변수에는 메신저가 사용자에게 올바르게 표시 할 수 있도록 Facebook 규칙에 따라 형식이 지정된 전체 메시지 데이터가 포함됩니다.
[js]
function callSendAPI (messageData) {
의뢰({
uri : '//graph.facebook.com/v2.6/me/messages',
qs : {access_token : process.env.PAGE_ACCESS_TOKEN},
메소드 : 'POST',
json : messageData
}, function (오류, 응답, 본문) {
if (! error && response.statusCode == 200) {
var recipientId = body.recipient_id;
var messageId = body.message_id;
console.log ( "성공적으로 ID가 % s 인 일반 메시지를받는 사람 % s에게 보냈습니다",
messageId, recipientId);
} else {
console.error ( "메시지를 보낼 수 없습니다.");
console.error (응답);
console.error (오류);
}
});
}
[/ js]
5. 변경 사항을 Heroku로 보내기
우리는 업그레이드 된 로봇을 살리기위한 마지막 단계에 있습니다. 우리는 모든 코드 변경 사항을 Heroku에 적용하면됩니다. 과정은 이전과 동일하며 아래에 요약되어 있습니다.
1. 터미널을 시작합니다.
2. 디렉토리를 testbot 디렉토리로 변경하십시오.
cd testbot
3. 다음을 수행하십시오.
- 자식 추가.
- 주 : 명령 끝에 "." 이 있습니다.
- git commit -m "상태 점검 및 포맷 개선"
- git push heroku master
4. 이제 "Android에서 기사 제안"또는 "Beebom, 주제 Android에 대한 기사 제안"과 같은 메시지를 보냅니다. 봇은 쿼리와 관련된 기사를 열 수있는 링크가 포함 된 정중 한 형식의 메시지를 보냅니다.
더 깊게 파다
이제 Facebook 메신저 봇 개발 방법을 알았으니 Facebook 메신저 봇 개발 방법에 대한 Facebook 문서를 살펴보십시오. 문서가 초보자에게는 좋지 않지만, 더 이상 초보자는 아닙니다. 공식 문서를 확인하고 봇을 더 똑똑하게 만드는 방법을 찾아야합니다. 티저 : 이미지와 버튼으로 메시지를 보낼 수도 있습니다! Wit.ai 및 Api.ai와 같은 서비스를 사용하여 봇을 코딩 한 다음 Facebook과 통합 할 수도 있습니다. 그러나 이러한 서비스를 사용하려는 나의 약한 시도에서 Wit.ai는 너무 잘 작동하지 않으며 Api.ai 초보자를위한 날카로운 학습 곡선이 있습니다.
Facebook 메신저 봇을 개발 한 적이 있습니까? 가지고 있다면 어떻게 개발 했습니까? 어떻게 할 수 있습니까? Wit.ai 및 Api.ai와 같은 서비스를 사용하여 봇을 만들었습니까? 혹시라도 봇 코딩에 손을 대지 않으 셨다면 직접 페이스 북의 메신저 봇을 개발하여보다 스마트하게 만들어 보시고 아래 코멘트에 귀하의 경험에 대해 알려주십시오.