我正在使用 Bash 脚本编写 Pushbullet HTTP API 的 cli。发送推送(注释和链接),以及创建、删除和修改联系人和设备都可以使用 curl 和 Bash 直接进行。但是,发送 SMS 和文件要复杂一些,因为两者都需要向服务器发送更复杂的 JSON 格式请求(在推送文件的情况下是多个 JSON 格式请求)。
我尝试发送以下内容的许多变体(带有和不带有转义字符),但服务器不断回复有关 JSON 格式错误的信息。以下代码基于Pushbullet HTTP API 文档中给出的示例。
curl -su $auth_id: -X POST https://api.pushbullet.com/v2/ephemerals --header "Content-Type: application/json"
--data-binary '{ "\"type"\": "\"push"\", "\"push"\": { \
"\"type"\": "\"messaging_extension_reply"\", \
"\"package_name"\": "\"com.pushbullet.android"\", \
"\"source_user_iden"\": "\"$source_idens"\", \
"\"target_device_iden"\": "\"$target_idens"\", \
"\"conversation_iden"\": "\"$sms_device"\", \
"\"message"\": "\"Hello"\" \
} }'
使用 bash -x,我可以看到这是(据说)正在发送到服务器的内容:
--data-binary '{"type": "push", "push": {
"type": "messaging_extension_reply",
"package_name": "com.pushbullet.android",
"source_user_iden": "<source_idens>",
"target_device_iden": "<device_idens>",
"conversation_iden": "<sms_phone_number>",
"message": "Hello" } }'
在所有情况下,服务器都会返回:
{"error":{"type":"invalid_request","message":"Failed to parse JSON body.","cat":"(=^‥^=)"}}
使用 curl 通过 Pushbullet API 发送 SMS 的 JSON 请求的适当格式是什么?我是否忽略了一些明显的东西?我正在尝试仅使用 curl 和 Bash 来完成此操作,我看不出它不可能的原因(可能不是最快或最优雅的方式,但肯定是可能的)。