如何使用Python监听并接收hookbin webhook推送的事件数据
接收hookbin Webhook推送的Python实现方案
这一需求最适合用轻量级Web框架Flask实现:它依赖少、代码简洁,不需要复杂配置就能完成HTTP请求接收、JSON解析的全流程,比自己手动实现HTTP服务器、或者用重型框架开发的成本低很多。
前置准备
先安装Flask依赖:pip install flask
完整实现代码
from flask import Flask, request, jsonify import json app = Flask(__name__) # 可自定义接口路径,和你后续填到hookbin的URL后缀保持一致即可 @app.route('/hookbin-callback', methods=['POST']) def hookbin_callback(): # 先校验请求是否为JSON格式,避免异常 if not request.is_json: return jsonify({"code": 400, "msg": "invalid content type, only json accepted"}), 400 # 提取hookbin推送的JSON数据 receive_data = request.get_json() # 打印输出,下面是美化打印的写法,不需要可以直接print(receive_data) print("="*60) print("收到hookbin推送事件:") print(json.dumps(receive_data, indent=2, ensure_ascii=False)) print("="*60) # 必须返回2xx状态码告知hookbin接收成功,否则hookbin可能会重试推送 return jsonify({"code": 200, "msg": "received"}), 200 if __name__ == '__main__': # host设为0.0.0.0允许外部访问,端口可自行修改 app.run(host="0.0.0.0", port=5000, debug=False)
使用说明
- 启动脚本后,把
http://你的公网IP:5000/hookbin-callback这个地址填写到hookbin的Webhook接收URL配置中即可 - 本地测试没有公网IP的话,用任意内网穿透工具映射本地5000端口到公网,拿到公网地址后再配置到hookbin
- 如果需要生产环境长期运行,搭配Gunicorn托管Flask服务即可,测试阶段直接运行脚本就能用
内容的提问来源于stack exchange,提问作者Prabhav
相关产品推荐
相关产品推荐

