Google Apps Calc スクリプトの PushBullet API を使用して、モバイルから SMS を送信しようとしています。
スクリプトは(認証データが編集されています)
function send_SMS() {
Logger.log("send_SMS start");
var options = {
"method" : "post",
"Content-Type" : "application/json",
"headers" : { "Authorization": "Basic aaaaaaaaaaaaaaaaaa" },
"payload" : {
"push" : {
"type" : "messaging_extension_reply",
"package_name" : "com.pushbullet.android",
"source_user_iden" : "iiiiiiiiiiiii",
"target_device_iden" : "iiiiiiiiiiiiiiidddddddddd",
"conversation_iden" : "0999999999",
"message" : "TestSMS" },
"type" : "push"
}
};
var push_bullet_url = "https://api.pushbullet.com/v2/ephemerals";
Logger.log(options);
UrlFetchApp.fetch(push_bullet_url, options);
return;
}
400 が表示されるので、JSON パッキング エラーが発生しているようです。「JSON 本体の解析に失敗しました。」</p>
ドキュメントはhttps://docs.pushbullet.com/#send-smsにあります
Windows で CURL を試してみたところ、コマンドは問題なく動作しました (""" エスケープを行ったもの)。
curl --header "Access-Token: ttttttttttttttt" --header "Content-Type: application/json" --data-binary "{ """push""": { """type""": """messaging_extension_reply""", """package_name""": """com.pushbullet.android""", """source_user_iden""": """iiiiiiiiiiiiiiii""", """target_device_iden""": """iiiiiiiiiiiiiiiiiddddddddddddd""", """conversation_iden""": """0999999999""", """message""": """TestSMS""" }, """type""": """push"""}" --request POST https://api.pushbullet.com/v2/ephemerals
user_ident、device_ident を取得し、テスト用の「メモ」メッセージを送信する Google Apps スクリプトを正常に作成できました。この問題は、スクリプトの JSON ペイロードの文字列引用符の適切な書式設定が原因である可能性があると思います。