챗봇 만들기 - 페이스북 연동하기

이동근·2021년 3월 24일
0

Project

목록 보기
13/20

챗봇 만들기 - facebookmessenger와 연동하기

facebook for developer - Messenger 플랫폼 소개

messenger에서 사용자가 메세지를 전송했을때, 우선 Facebook 서버가 메세지 앱이 호스팅 되는 비즈니스 서버의 URL로 Webhook을 전송합니다. 앱은 보내기 API를 사용해서 Messenger에 있는 해당 사용자에게 응답을 할 수 있습니다.

facebook 설정해주기

developer.facebook에 들어가서 내 앱을 먼저 만들어 준다.

만들어 준 후 앱에 들어가게 되면 앱에 제품을 추가할 수 있게 해놓았다.
messenger 추가 후 - 설정에 들어가게 되면

요런식으로 엑세스 토큰을 만들어 주어야 한다. 그 전에 페이지 만들어서 추가 해주어야 한다 그 후 토큰을 생성한 후 가지고 있어야 한다.

webhook 설정해주기

webhook은 facebook 서버와 bsiness 서버를 연결해 준다고 생각 해 주면 된다.

지금 연결이 완료가 되있어서 이런식으로 되어 있다.

처음 오게 되면 콜백URL, 확인 토큰을 설정 해주어야한다.
확인 토큰은 페이스북과 나와의 약속이라서 아무렇게나 설정을 해주면 되지만 callback url은 request를 받을 url을 적어야 한다. 이 부분을 해결하기 위해 많은 방법이 있지만 그 중에 'ngrok'를 사용하려고 한다.

ngrok

웹사이트나 API 서버 등을 개발할 때 보통은 로컬에 개발환경이 구축되어 있으므로 외부에서 접근하려면 외부에서 접속할 수 있는 서버에 올리거나 해야 한다. 이는 일반적인 개발 단계이기는 하지만 배포단계가 아닌 개발단계에서 외부에 열어주어야 하는 경우에는 상당히 귀찮은 일이다.

이 ngrok는 쉽게 말해서 방화벽 넘어서 외부에서 로컬에 접속 가능하게 하는 터널 프로그램이라고 할 수 있다.

참고
https://blog.outsider.ne.kr/1159
https://ngrok.com/

ngrok를 설치 해주면 된다.
아 그리고 사용하는 방법에 있어서 현재 ubuntu 기준이다.!!

https://www.youtube.com/watch?v=QCGgRXjRSV8

chatbot 연동하는데 있어서 자세하게 잘 설명을 해주었다. 잘 따라서 해주면 성공적으로 chatbot연동을 할 수 있다. (저도 이거 따라 했습니다.)

그래서 ngrok를 설치하고 유튜브 1, 2 편에 있는 로직을 짠 후 ngrok 서버를 돌리게 되면

이런식으로 나오게 되는데 forwarding에 https://1f338eb~~ 이부분이 callbackurl이 된다.
만약 ngrok에 가입을 하게 되면 authorzation token을 주는데 이걸 가지게 되면 시간 제한 없이 서버 돌리는게 가능하다. 가입을 안하게 되면, 8시간의 제한이 있다. 그리고 ngrok 서버를 끄게 되면 forwarding url이 달라지기 때문에 callback url 이 달라지므로 facaebook webhook에 있는 callback url을 계속 수정을 해주어야 한다.

주의사항

ngrok를 실행을 시키는데 있어서, 항상 flask 서버를 run 시킨 다음에 ngrok를 실행을 시켜야지 callbackurl을 설정하는데 있어서 오류가 나지 않는다.

이 과정을 모두 끝내게 되면 준비가 끝이 나게 된다.

chatbot 연동

flask 서버와, ngrok 서버를 킨 후 facebook에 chat봇을 실행 시키면 실행이 된다!!


이제 연동까지 해봤다.

이 다음과정은 Layered Arcitecture에 맞게 자료구조를 만들고 나서 로직을 짜면 된다.

profile
하루하루 1cm 자라는 개발자

0개의 댓글