GASにcurlからjson形式でPOSTしたい。
GASにcurlからjson形式でPOSTしようとしています。
エラー発生しているポイントはJSON.parse()で、与えた文字列が不正としてエラーとなってしますます。
不正な文字列は**.postData.getDataAsString();**で生成していて、内容は""がなくなってしまうところまで分かりました。
発生している問題・エラーメッセージ
エラーメッセージ c:\>curl -XPOST https://script.google.com/macros/s/AKfycbzntxDdti4eyHkSSLFGg6X6VfG9eSt7wgWwTK7kZldVp5SJebT7/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{"value":"lisz-works"}' <!DOCTYPE html><html><head><link rel="shortcut icon" href="//ssl.gstatic.com/docs/script/images/favicon.ico"><title>エラー</title><style type="text/css">body {background-color: #fff; margin: 0; padding: 0;}.errorMessage {font-family: Arial,sans-serif; font-size: 12pt; font-weight: bold; line-height: 150%; padding-top: 25px;}</style></head><body style="margin:20px"><div><img alt="Google Apps Script" src="//ssl.gstatic.com/docs/script/images/logo.png"></div><div style="text-align:center;font-family:monospace;margin:50px auto 0;max-width:600px">SyntaxError: Unexpected token: '(行 4、ファイル「コード」、プロジェクト「postのテスト」)</div></body></html>
Google Apps Script(該当のソースコード)
function doPost(e){ FileLogger.logging(function(){ // logファイル出力callback var jsonString = e.postData.getDataAsString();//← ""がない文字列となってしまう。 var params = JSON.parse(jsonString);//←書式異常でエラーとなる。 var value = params.value; Logger.log(jsonString); Logger.log(value); }); }
curl コマンドライン文字列
①curl -XPOST https://script.google.com/macros/s/<ID>/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{\"value\":\"lisz-works\"}' ②curl -XPOST https://script.google.com/macros/s/<ID>/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{"value":"lisz-works"}' ③curl -XPOST https://script.google.com/macros/s/<ID>/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{'"value"':'"lisz-works"'}' ④curl -XPOST https://script.google.com/macros/s/<ID>/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{''value'':''lisz-works''}' ⑤curl -XPOST https://script.google.com/macros/s/<ID>/exec -H "Accept: application/json" -H "Content-type: application/json" -d '{'value':'lisz-works'}'
試したこと
上記①~⑤logで確認したところ、①は期待した文字列が得られましたが、同じエラーで止まってしまいます。
補足情報(FW/ツールのバージョンなど)
c:>curl -V
curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL
Release-Date: [unreleased]
Protocols: dict file ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
追伸
非常に基本的なことであるせいか、かなり調べたのですが解決に至りませんでした。
初心者なため、PCを変えたり、再起動したりと色々試してみたのですが、問合せさせて頂きました。
知恵をお貸しいただけないでしょうか。宜しくお願い致します。

回答1件
あなたの回答
tips
プレビュー