前提・実現したいこと
Google Apps Scriptで外部APIに対しform-dataでデータを渡したい。
発生している問題・エラーメッセージ
<<Google Apps Scriptのログで確認>> Exception: https://api.uhooinc.com のリクエストに失敗しました(エラー: 401)。サーバー応答の一部: {"status":2,"message":"Invalid Input"}
該当のソースコード
1var vFormData; 2var vSendData; 3var vRcvData; 4var vAPIURL = 'https://www.test.net/testapi'; 5 6//フォームデータ生成 7vFormData = { 8 "username":"TEST-USER", 9 "password":"abcd@1234", 10 "senddata1":"test1", 11 "senddata2":"test2" 12}; 13 14//API送信用データ生成 15vSendData = { 16 "method":"POST", 17 "body":vFormData 18}; 19![イメージ説明](846492060943ce000a5abac0eb39f0da.jpeg) 20//API送信 21vRcvData = JSON.parse(UrlFetchApp.fetch(vAPIURL, vSendData).GetContentText()); 22
試したこと
ソースコード17行目の"body"を"payload"等に変更、"contentType"に"application/json"を指定したがエラーは変わらず。
concole.logでvSendDataの中身を確認したところ、データは想定通りである。
APIのデータ送信ツール「Postman」において、以下の情報を送信したところ、Status 200 OKが返ってきて意図したデータを受信できている。
(※詳細は添付画像参照)
■Postmanで送信したデータ
Method: POST
URL: https://www.test.net/testapi
Body: form-data
KEY:username,password,senddata1,senddata2
補足情報(FW/ツールのバージョンなど)
外部APIへJSON形式でデータを送信したスクリプトでpayloadを指定し問題なく動作していた別のスクリプトを流用しているため、送信するデータ形式に問題があるのではないか?と疑っている。
自分で調べ、画像やPDFデータなどをPOSTする情報は見つかったが、それを参考にvFormData、vSendDataを修正するも、出力されるエラーは変わらず。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/07 07:21
2020/06/07 08:05 編集
2020/06/07 08:06 編集
2020/06/07 08:07
2020/06/07 08:12
2020/06/07 08:24
2020/06/07 08:38