控制台 URL 保存成功,日志空空——方向搞反了能配一整周

用自己发的消息等回调,永远等不到

同事配 Webhook,控制台显示地址已保存,nginx 也起了,就是没日志。问怎么测:「我调发送接口发了一句 test,然后等 POST。」

这是个人微信回调联调里最高频的坑。Webhook 是别人给你发消息,平台推到你服务器;不是把你 API 发出去的消息再弹回来。测收消息,必须换另一个微信号,给实例发私聊或群聊。

第二个坑:填 localhost 或公司内网 IP。平台在公网,进不了你家局域网。开发用穿透,上线换 HTTPS 域名,改完地址要用外部号再发一句验证,旧 URL 立刻失效。

第三个坑:回调里同步调大模型、查库、再回复,几秒内没返回 200,可能重复推送。收到 POST → 去重 → 丢队列 → 立刻 200,重活交给 worker。

代码参考

import redis
from flask import Flask, request

app = Flask(__name__)
rds = redis.from_url("redis://localhost:6379/0")

@app.post("/wx/callback")
def callback():
    event = request.get_json(force=True)
    msg_id = str(event.get("newMsgId", ""))
    if msg_id and not rds.set(f"seen:{msg_id}", "1", nx=True, ex=86400):
        return "ok", 200
    app.logger.info("inbound %s", event)
    # 异步处理,此处只签收
    queue.enqueue(event)
    return "ok", 200

小结

Webhook 联调两句话:用别人给你发消息来测;回调线程只签收、不干活。

Webhook 怎么配、回调里有哪些字段,动手前可以先打开 Eyun官网 对着做。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐