【问题标题】:hangouts-chat: hangouts chat bot unable to post messages to a Bot implementation https endpointhangouts-chat:hangouts 聊天机器人无法将消息发布到 Bot 实现 https 端点
【发布时间】:2018-06-16 02:17:05
【问题描述】:

我开发了一个响应 POST 消息的 HTTPS 同步端点,并将 URL 配置为 Hangouts Chat 聊天机器人配置下的“机器人 URL”。它被部署到亚马逊 AWS 中的 EC2,并为 URL 添加了一个 route53 条目:https://mychatbot-implementation,它将 HTTPS POST 重定向到我的 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')

有人可以就接下来的步骤提供建议吗?

【问题讨论】:

  • 您好!请您提供最小的完整示例,因为现在很难理解您在做什么以及您遇到了什么错误?看看这里如何提出一个好问题:stackoverflow.com/help/how-to-ask
  • 嗨,我已在我的问题中添加了屏幕截图和代码。希望现在很清楚。

标签: chat chatbot hangouts-api hangouts-chat


【解决方案1】:

很遗憾,mychatbot-implementation 不是有效的Internet TLD,因此 Route53 将永远无法路由您的请求(事实上,它不会得到它)。您需要关注 2 个问题(机器人实现、用户可达性)并且需要单独解决它们(分而治之),而不是试图一次解决所有问题。

我建议为了测试你的机器人实现,你让你的机器人在 EC2 上运行,并为你的实例(加上端口号)获取一个可访问的 IP 地址 (w.x.y.z),并将你的配置更改为指向 that,即https://w.x.y.z:8080/,然后查看环聊聊天服务是否可以访问您的机器人。一旦您完成这项工作并调试了您的机器人,您就可以担心获得 TLD 并注册 DNS。

【讨论】:

    猜你喜欢
    • 2019-03-04
    • 2018-04-07
    • 1970-01-01
    • 2018-01-09
    • 2021-10-26
    • 2017-06-10
    • 1970-01-01
    • 1970-01-01
    • 2017-09-02
    相关资源
    最近更新 更多