Я создаю самостоятельно созданный чат-бот Python, который не использует платформу чат-ботов, такую как Dialogflow. Проблема в том, что нет легкой интеграции с приложениями обмена сообщениями, такими как Messenger, чтобы подключить его тоже. Я пытаюсь создать веб-крючок для Messenger с помощью Messenger Send API. Я смотрю на документацию, и она показывает мне, как запросить вызов API POST. Однако, когда я смотрю на примеры в Интернете, все они, похоже, имеют дело со значениями json, называемыми «entry» и «message», которые я нигде не могу найти и не могу понять, почему это необходимо. Мне было интересно, как именно выглядит тело ввода API Messenger для отправки, чтобы я мог вызывать его соответствующим образом и какие объекты json находятся в его теле. Это то, что я так далеко от следующих онлайн-примеров. Я использую Flask. И я использую Почтальон, чтобы проверить это
@app.route("/webhook", methods=['GET','POST'])
def listen():
if request.method == 'GET':
return verify_webhook(request)
if request.method == 'POST':
payload = request.json
event = payload['entry'][0]['messaging']
for x in event:
if is_user_message(x):
text = x['message']['text']
sender_id = x['sender']['id']
respond(sender_id, text)
return "ok"
Ниже я думаю, что тело запроса выглядит так:
{
"object":"page",
"entry":[
{
"id":"1234",
"time":1458692752478,
"messaging":[
{
"message":{
"text":"book me a cab"
},
"sender":{
"id":"1234"
}
}
]
}
]
}
Но он не может прочитать это и выдает ошибку:
Файл "/ Users / Raphael ****** / Documents / ***** _ Project_Raphael / FacebookWebHookEdition.py", строка 42, в режиме прослушивания
событие = полезная нагрузка ['entry'] [0] ['message']
TypeError: объект 'NoneType' не может быть подписан
Где я ошибаюсь, что webhook неправильно регистрирует тело как объекты json?