hangouts-chat:环聊聊天机器人无法 post 向机器人实现 https 端点发送消息
hangouts-chat: hangouts chat bot unable to post messages to a Bot implementation https endpoint
我开发了一个响应 POST 消息的 HTTPS 同步端点,并在 Hangouts Chat 的聊天机器人配置下将 URL 配置为 "Bot URL"。它被部署到亚马逊 aws 中的 EC2 并为 URL 添加了一个 route53 条目:https://mychatbot-implementation 将 HTTPS POSTs 重定向到我的 ec2.
但是,聊天机器人没有向 https 端点发布任何消息,也没有记录任何错误。
Link to screenshot of chat-bot configuration
聊天机器人实现代码在这里:
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')
有人可以建议下一步吗?
不幸的是,mychatbot-implementation
不是有效的 Internet TLD,因此 Route53 将永远无法路由您的请求(事实上,它不会收到请求)。您有 2 个问题需要关注(机器人实施、用户可达性),需要分别解决(分而治之),而不是试图一次解决所有问题。
我建议,为了测试您的机器人实施,您将机器人 运行 保留在 EC2 上,并为您的实例(加上端口号)获取一个可访问的 IP 地址 (w.x.y.z
) 并更改您的配置指向 that,即 https://w.x.y.z:8080/
并查看 Hangouts Chat 服务是否可以访问您的机器人。一旦你让它工作并调试了你的机器人,那么你就可以担心获得 TLD 并在 DNS 上注册。
我开发了一个响应 POST 消息的 HTTPS 同步端点,并在 Hangouts Chat 的聊天机器人配置下将 URL 配置为 "Bot URL"。它被部署到亚马逊 aws 中的 EC2 并为 URL 添加了一个 route53 条目:https://mychatbot-implementation 将 HTTPS POSTs 重定向到我的 ec2.
但是,聊天机器人没有向 https 端点发布任何消息,也没有记录任何错误。
Link to screenshot of chat-bot configuration
聊天机器人实现代码在这里:
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')
有人可以建议下一步吗?
不幸的是,mychatbot-implementation
不是有效的 Internet TLD,因此 Route53 将永远无法路由您的请求(事实上,它不会收到请求)。您有 2 个问题需要关注(机器人实施、用户可达性),需要分别解决(分而治之),而不是试图一次解决所有问题。
我建议,为了测试您的机器人实施,您将机器人 运行 保留在 EC2 上,并为您的实例(加上端口号)获取一个可访问的 IP 地址 (w.x.y.z
) 并更改您的配置指向 that,即 https://w.x.y.z:8080/
并查看 Hangouts Chat 服务是否可以访问您的机器人。一旦你让它工作并调试了你的机器人,那么你就可以担心获得 TLD 并在 DNS 上注册。