Чат-чат: чат-бот не может отправлять сообщения на конечную точку реализации ботов https
Я разработал синхронную конечную точку HTTPS, которая отвечает на сообщения POST, и настроил URL-адрес как "URL-адрес бота" в разделе "Настройка бота чата для чата Hangouts". Он развернут на EC2 в amazon aws и добавил запись route53 для URL: https: // mychatbot-реализация, которая перенаправляет HTTPS-сообщения в мой ec2.
Тем не менее, чат-бот не публикует никаких сообщений в конечную точку https, и в нем нет зарегистрированных ошибок.
Ссылка на скриншот конфигурации чат-бота
Код реализации Chat Bot здесь:
from flask import Flask, request, json, render_template, make_response
app = Flask(__name__)
@app.route('/', methods=['POST'])
def on_event():
event = request.get_json()
resp = None
if event['type'] == 'REMOVED_FROM_SPACE':
logging.info('Bot removed from space...')
if event['type'] == 'ADDED_TO_SPACE':
text = 'Thanks for adding me to "%s"!' % event['space']['displayName']
elif event['type'] == 'MESSAGE':
text = 'You said: `%s`' % event['message']['text']
else:
return
return json.jsonify({'text': text})
if __name__ == '__main__':
app.run(port=8080, ssl_context='adhoc', debug=True, host='my host ip address')
Может кто-нибудь посоветовать, пожалуйста, о следующих шагах?
1 ответ
К несчастью, mychatbot-implementation
не является действительным TLD в Интернете, поэтому Route53 никогда не сможет перенаправить ваш запрос (фактически он не получит его). У вас есть 2 проблемы (реализация ботов, доступность для пользователя), и вам нужно решать их отдельно (разделяй-н-завоевывать), а не пытаться решить все сразу.
Я советую протестировать реализацию своего бота, чтобы он работал на EC2 и получил доступный IP-адрес (w.x.y.z
) к вашему экземпляру (плюс порт #) и измените вашу конфигурацию, чтобы указать на это, то есть https://w.x.y.z:8080/
и посмотрите, сможет ли служба чата Hangouts связаться с вашим ботом. После того, как все заработает и ваш бот будет отлажен, вы можете беспокоиться о получении TLD и регистрации в DNS.