前提・実現したいこと
外部APIにFormデータをPOSTするJavaScriptのコードをGoogle Apps Script(GAS)に変換して動かしたいです。
元々はGASで作成していたのですが、どうしても動かなかったため、自分で調べてみたところ、同類のAPIに対し、JavaScriptで動作するソースコードを見つけました。
GASではFormDataオブジェクト、fetchがエラーとなって使えないため、そのまま移植することができません。
GASでもFormDataオブジェクト、body指定のできるfetchがあれば動作するものだと考えているのですが、GASでそれらの代用となるもの、もしくはそれらが使えるようになるライブラリなどはあるのでしょうか。
JavaScript版のソースコード
function sendpostJS(){ var formdata = new FormData(); formdata.append("username", "TESTUSER"); formdata.append("password", "abcd@1234"); formdata.append("senddata1", "test1"); formdata.append("senddata2", "test2"); var requestOptions = { method: 'POST', body: formdata, }; fetch("https://www.testapi.com/testapi", requestOptions) .then(response => response.text()); }
GAS版のソースコード
サーバからの応答は401エラーとなる。原因はformData形式ではないためであると推測。
function sendpostGAS(){ var vFormData; var vSendData; var vRcvData; var vAPIURL = 'https://www.testapi.com/testapi'; vFormData = { "username":"TESTUSER", "password":"abcd@1234", "senddata1":"test1", "senddata2":"test2" }; vSendData = { "method":"POST", "payload":vFormData }; UrlFetchApp.fetch(vAPIURL, vSendData).getContentText(); }
回答1件
あなたの回答
tips
プレビュー