Webhook 接收端点说明
回调地址(填进 Meta 后台)
https://app.aifengdcs.com/api/meta/webhook
验证令牌
META_VERIFY_TOKEN:我方自定义的一串随机字符,只存在服务器环境变量;Meta 后台配置回调时两边填一致即可。
订阅字段(勾选后新消息才会推送)
Page 对象(FB 公共主页)
messages — FB 主页私信(客户发来的 Messenger 消息)
messaging_postbacks — FB 私信中的按钮回传(快捷回复/菜单点击)
feed — FB 主页帖子评论与回复(合并会话用)
Instagram 对象(INS 专业账号)
messages — INS 私信(专业账号收到的 DM)
comments — INS 帖子评论(合并会话用)
接收流程(本模块已实现骨架)
- Meta 后台先 GET 校验:hub.verify_token 与 META_VERIFY_TOKEN 一致则回显 hub.challenge
- 之后 Meta 以 POST 推送消息事件(JSON 体见下方示例)
- 服务端用 META_APP_SECRET 校验 X-Hub-Signature-256 签名
- 解析 entry[].messaging[] 与 changes[](评论),写入 uc_meta_messages_v109
- message_mid 唯一约束幂等去重,重推不产生重复消息
推送体示例(私信事件)
{
"object": "page",
"entry": [{
"id": "<PAGE_ID>",
"time": 1735689600000,
"messaging": [{
"sender": {"id": "<USER_PSID>"},
"recipient": {"id": "<PAGE_ID>"},
"timestamp": 1735689600000,
"message": {"mid": "m_abc123", "text": "Halo, tanya harga"}
}]
}]
}
⚠ 真实接通 Meta(令牌、webhook 上线、权限审核)均为 Human-Gate PENDING,老板在场逐条批准后执行。