You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Facebook聊天机器人Webhook调试:curl -H命令执行失败报错求助

解决Facebook Messenger Webhook的curl命令与JSON解析错误

看起来你遇到了两个关联的问题:curl命令的语法错误导致请求格式异常,进而引发后端body-parser的JSON解析失败。咱们一步步拆解解决:

1. 先修复curl命令的语法问题

错误日志里的Could not resolve host: page、unmatched close brace/bracket是典型的Windows命令提示符下curl参数格式错误——Windows CMD不支持用单引号包裹JSON字符串,而且内部的双引号需要转义。

修正后的curl命令示例(适配Windows CMD)

curl -H "Content-Type: application/json" -X POST -d "{\"object\":\"page\",\"entry\":[{\"id\":\"你的PAGE_ID\",\"time\":1620000000,\"messaging\":[{\"sender\":{\"id\":\"测试用户ID\"},\"recipient\":{\"id\":\"你的PAGE_ID\"},\"message\":{\"text\":\"Hello Webhook\"}}]}]}" https://你的Webhook地址/webhook

关键修正点:

  • 把包裹JSON的单引号'换成双引号"
  • JSON内部的所有双引号前面加反斜杠\转义(比如"object"变成\"object\")
  • 确保整个JSON结构完整,没有缺失的括号或逗号

如果你用的是Git Bash或WSL(Linux子系统),可以直接用单引号包裹JSON,不需要转义内部双引号,命令会更简洁:

curl -H "Content-Type: application/json" -X POST -d '{"object":"page","entry":[{"id":"你的PAGE_ID","time":1620000000,"messaging":[{"sender":{"id":"测试用户ID"},"recipient":{"id":"你的PAGE_ID"},"message":{"text":"Hello Webhook"}}]}]}' https://你的Webhook地址/webhook

2. 解决body-parser的JSON解析错误

SyntaxError: Unexpected token ' in JSON at position 0这个错误,本质是后端收到的请求体不是有效的JSON格式——这正是因为之前curl命令发送的内容被CMD拆分后,变成了混乱的字符串,导致body-parser无法解析。

额外验证步骤:

  • 先把要发送的JSON内容单独拿出来,用JSON校验工具检查格式是否合法(确保没有语法错误)
  • 确认你的Node.js代码里正确配置了body-parser:
    const bodyParser = require('body-parser');
    app.use(bodyParser.json()); // 必须配置这一行,确保解析JSON格式的请求体
    

总结

先把curl命令的格式修正对,确保发送的是完整有效的JSON请求体,后端的body-parser就能正常解析了。如果还是有问题,可以先打印后端收到的req.body或者原始请求体,看看实际收到的内容是什么,再针对性调整。

内容的提问来源于stack exchange,提问作者Amit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:47:06