使用 curl 将图像附件发送到 facebook 聊天不起作用

sending a image attachment to facebook chat with curl does't work

我正在尝试将图像附件发送到与 curl 的 facebook 聊天。 我收到了说明表格 (https://developers.facebook.com/docs/messenger-platform/send-api-reference/image-attachment)

curl  \
-F 'recipient={"id":"YYYY"}' \
-F 'message={"attachment":{"type":"image", "payload":{}}' \
-F 'filedata=@/home/dominic/site/drophere/hitcat.jpg;type=image/jpeg' \
"https://graph.facebook.com/v2.6/me/messages?access_token=XXXX"

我执行后,出现这个错误信息:

{"error":{"message":"(#100) Message cannot be empty, must provide valid attachment or text","type":"OAuthException","code":100,"error_subcode":2018034,"fbtrace_id":"DwlBQTqXCw\/"}}

找不到我的错误。

您似乎在 "payload":{}} 之后少了一个 }。您的代码应为:

curl  \
-F 'recipient={"id":"YYYY"}' \
-F 'message={"attachment":{"type":"image", "payload":{}}}' \
-F 'filedata=@/home/dominic/site/drophere/hitcat.jpg;type=image/jpeg' \
"https://graph.facebook.com/v2.6/me/messages?access_token=XXXX"

他们的文档也有一个错误的 JSON 示例 https://developers.facebook.com/docs/messenger-platform/send-messages

curl  \
  -F 'recipient={"id":"<PSID>"}' \
  -F 'message={"attachment":{"type":"<ASSET_TYPE>", "payload":{"is_reusable"=true}}}' \
  -F 'filedata=@/tmp/shirt.png;type=image/png' \
  "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

注意这里的等号:

{"is_reusable"=true}

这里应该是:而不是=