Я работаю над кликом для HTTP HTTP Pushbullet с использованием сценариев Bash. Отправка нажатий (заметок и ссылок), а также создание, удаление и изменение контактов & устройства идут прямо с помощью curl и Bash. Однако отправка SMS и файлов несколько сложнее, так как оба требуют отправки на сервер более сложных JSON-отформатированных запросов (несколько запросов в формате JSON в случае нажатия файлов).Отправка SMS с помощью API Pushbullet с помощью скриптов Bash (curl)
Я попытался отправить много вариантов на следующие (как с и без escape-символов), но сервер продолжает отвечать на ошибки JSON-форматирования. Следующий код основан на примере, приведенном в Pushbullet HTTP API documentation.
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"\" \
} }'
Использование Баш -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":"(=^‥^=)"}}
Каково надлежащее форматирование запроса JSON с использованием curl для отправки SMS через API Pushbullet? Я не замечаю ничего очевидного? Я пытаюсь выполнить это, используя только завиток и Bash, я не вижу причин, почему это невозможно (возможно, не самый быстрый или самый элегантный способ, но, безусловно, возможно).
Я тоже был в состоянии получить ответ {} с этим кодом. Раньше у меня было все после заголовка, хранящегося в его собственной переменной, и я думаю, что это была основная проблема. Вероятно, это связано с тем, как Bash обрабатывает определенные символы внутри переменной (поэтому я избегаю всех двойных кавычек). Положить его на одну линию, казалось, исправить это. Однако я не получил SMS. Я должен удостовериться, что скрипт 'source_user_iden' и' target_device_iden' заданы надлежащим образом. Это дает мне некоторое представление о том, почему для меня не работало толкание файлов. –
Итак, кажется, что хотя у меня есть правильные 'source_user_idens' и' target_device_idens', и я получаю правильный ответ '{}', мой телефон фактически не получает SMS. Я что-то пропустил? –
Не могли бы вы дать мне точный запрос, который вы используете? Кроме того, чтобы быть понятным, API Pushbullet отправляет SMS через приложение Pushbullet на ваш Android-телефон. (Я не знаю, ясно ли документы делают это) –