Я пытаюсь развернуть мессенджер-бот. Это закодировано в python. Я уже создал приложение для разработчиков Facebook. Webhooks установлен, я уже предоставил URL обратного вызова и токен проверен. ![enter image description here](https://i.stack.imgur.com/nFSwv.png)
Однако, когда я отправляю сообщение на страницу, я получаю '400 BAD REQUEST'. Кажется, что есть проблема с обработкой метода POST. Мои подписки на страницы: ![My page subscriptions](https://i.stack.imgur.com/wARGv.png)
Это рабочий пример моего кода:
from flask import Flask, request
import requests
import json
app= Flask(__name__)
WEBHOOK_TOKEN = "xxxxxx"
PAGE_ACCESS_TOKEN= "yyyyy"
GRAPH_API_URL='https://graph.facebook.com/v6.0/me/messages'
def send_message(recipient_id, text):
headers={
'Content-type': 'application/json'
}
data =json.dumps({
'message': {'text': text },
'recipient': {'id': recipient_id}
})
auth = {
'access_token': PAGE_ACCESS_TOKEN
}
response = requests.post(
GRAPH_API_URL,
headers= headers,
params=auth,
data=data
)
return response.json()
@app.route('/', methods=['GET','POST'])
def webhook():
mode =request.args.get("hub.mode")
token= request.args.get("hub.verify_token")
challenge=request.args["hub.challenge"]
if (request.method == 'GET'):
if mode and challenge:
if mode == "subscribe" and token==WEBHOOK_TOKEN:
return str(challenge), '200' #success
else:
return '403' #Verification token mismatch
if (request.method == 'POST'):
data=request.json
with open('personal.json', 'w') as json_file:
json.dump(data, json_file)
messaging_event=data['entry'][0]['messaging']
for msg in messaging_event:
UserId=msg['sender']['id']
send_message(UserId,'testing...')
return '200'
if __name__ == "__main__":
app.run()