Facebook Messenger API + Flask 비망록 [도입편]
미리 Facebook for Developers로 등록한 admin, developer, tester 밖에 사용할 수 없다. 또, 친구가 아닌 사람의 어플리에의 추가는 불가. 공개적으로 누구나 사용할 수 있도록 하려면 Review 신청을 하고 심사에 다닐 필요가 있다.
초기 설정
htps : //에서 ゔぇぺぺrs. 후세보오 k. 이 m/아 ps/에서 Create App
로 앱 만들기
What do you need your app to do?는 Manage Business Integrations를 선택했지만 Something Else에서도 좋을 것 같습니다.
앱 디스플레이 이름을 넣고 Create App

Add Products가 많이 나오지만, 우선 Messenger만 선택해 추가

중간당 Access Tokens로 연동할 Facebook 페이지를 추가합니다. Add or Remove Pages에서
자신이 admin의 페이지 일람이 나오므로 선택.

페이지가 등록되면 오른쪽의 Generate Token에서 액세스 토큰을 발행하여 기록한다. 우선 환경 변수 .env
에 저장.
이것은 Facebook Graph API를 통해 요청을 보낼 때 매개 변수로 매번 반드시 첨부해야합니다. 굉장히 길다.

그런 다음 Webhook 설정. Callback URL은 Flask 앱의 콜백 프로그램이 있는 URL을 지정, HTTP는 불가능하므로 AWS EC2 인스턴스의 IP 주소를 그대로 사용할 수 없다(EC2의 HTTPS화는 별도로 기재). Heroku에 배포하면 HTTPS 통신이 가능합니다.
URL은 https://.../callback
로 설정되었습니다. 여기에 기입하는 Verify Token 은 Facebook 측으로부터 리퀘스트를 보내 답장이 오는지 어떤지를 테스트를 하기 위한 것이며, 뭐든지 좋다. 우선 test
로 해 두고, .env
에 VERIFY_TOKEN=test
라고 보존했지만, 개인용이라면 그대로 프로그램내에 하드 코딩 해도 좋을지도 모른다. 프로그램이 정상이면 Verify and Save 할 수 있습니다.

여기서, Flask측의 프로그램은 이하. 이 테스트에 대한 요청은 GET 메소드입니다. 실제 콜백 함수가 되는 'POST'
부분은 나중에 추가됩니다.
import os
from flask import Flask, request
from dotenv import load_dotenv
load_dotenv() # 環境変数ファイル .env の読み込み
VERIFY_TOKEN = os.getenv('VERIFY_TOKEN')
@app.route('/callback', methods=['GET', 'POST'])
def receive_message():
if request.args.get("hub.verify_token") == VERIFY_TOKEN:
return request.args.get("hub.challenge")
else:
return 'ちがうよ'
요청에 어떤 매개 변수가 있는지 여기를 참조하십시오.
요컨대, 보내져 온 hub.verify_token
의 값을 체크해, 같으면 hub.challenge
의 값을 돌려주고 있을 뿐. 브라우저의 URL 바에
https://.../callback?hub.verify_token=test&hub.challenge=SUCCESS
를 입력하고 SUCCESS 라고 표시되면 OK
Webhook 등록이 완료되면 이번에는 Add Subscription에서 사용할 API 유형을 선택합니다. 너무 많아서 차이를 모른다(여기 참조) 하지만, 우선 messages, message_deliveries, messaging_postbacks 를 선택한다. 필요하면 나중에 얼마든지 추가할 수 있다.


이 후 자신이 관리하고 있는 FB 페이지로 가서 Page Settings > Advanced Messaging > Connected Apps 곳에 등록한 앱이 있으면 OK.
회신용 Python 프로그램 구현은 다음에
실장편 1
Reference
이 문제에 관하여(Facebook Messenger API + Flask 비망록 [도입편]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nozomiyamada/items/5243a9b390bf36922680
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import os
from flask import Flask, request
from dotenv import load_dotenv
load_dotenv() # 環境変数ファイル .env の読み込み
VERIFY_TOKEN = os.getenv('VERIFY_TOKEN')
@app.route('/callback', methods=['GET', 'POST'])
def receive_message():
if request.args.get("hub.verify_token") == VERIFY_TOKEN:
return request.args.get("hub.challenge")
else:
return 'ちがうよ'
Reference
이 문제에 관하여(Facebook Messenger API + Flask 비망록 [도입편]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nozomiyamada/items/5243a9b390bf36922680텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)