🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

1回答

1462閲覧

Webhookとスプレッドシートの連携が上手くいかない

LuiNy7tiNYEfg3A

総合スコア23

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/11/26 05:23

https://note.com/arakuma3/n/nac5d74b13e67
↑上記サイトを参考にWebhookで送信した内容をスプレッドシートに転記したいと考えています。
サイト通りにWebhookの送信メッセージを{"msg1":"foo","msg2":"bar","num1":"0.01"}とすると、無事スプレッドシートに記載出来るのですが、本来送信したいメッセージは
ストラテジー (0, 0.98, 1.08, 0.92): {{ticker}} で {{strategy.order.action}} @ {{strategy.order.contracts}} の注文が約定しました。新しいストラテジーポジションは {{strategy.position_size}} です
といったメッセージになります。

コードのどこを変えれば、スプレッドシートに転載できるか分からず困っています、、、
分かる方がいらっしゃれば、ご教授をしていただけないでしょうか。よろしくお願いします。

<試したこと>
var postdata = e.postData.getDataAsString(); // postデータを受け取る
var params = JSON.parse(postdata); // JSONパース処理
を受け取るために、
logger.log(postdata)
console.log(params)
などを試みましたが、表示されません、、

// メイン処理 function doPost(e) { var postdata = e.postData.getDataAsString(); // postデータを受け取る var params = JSON.parse(postdata); // JSONパース処理 var ss = SpreadsheetApp.getActiveSpreadsheet(); var result_sheet = ss.getSheetByName('log'); try { //postdata = {"msg1":"foo","msg2":"bar","num1":"0.01"} var strategy = params.msg1; // "msg1" : "foo" var side = params.msg2; // "msg2" : "bar" var volume = Number(params.num1); // "num1" : 0.01 } catch(e) { logwrite(postdata, "NG"); return ContentService.createTextOutput('error') } logwrite(postdata, "OK") return ContentService.createTextOutput('ok') } // ログ出力処理 function logwrite(postdata, result) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var log_sheet = ss.getSheetByName('log'); var now = new Date(); var time = Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss'); log_sheet.appendRow([time, result, postdata]) }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1// メイン処理 2function doPost(e) { 3 var postdata = e.postData.getDataAsString(); // postデータを受け取る 4// var params = JSON.parse(postdata); // JSONパース処理 5 6 var ss = SpreadsheetApp.getActiveSpreadsheet(); 7 var result_sheet = ss.getSheetByName('log'); 8/* 9 try { 10 //postdata = {"msg1":"foo","msg2":"bar","num1":"0.01"} 11 var strategy = params.msg1; // "msg1" : "foo" 12 var side = params.msg2; // "msg2" : "bar" 13 var volume = Number(params.num1); // "num1" : 0.01 14 } catch(e) { 15 logwrite(postdata, "NG"); 16 return ContentService.createTextOutput('error') 17 } 18*/ 19 logwrite(postdata, "OK") 20 21 return ContentService.createTextOutput('ok') 22} 23 24// ログ出力処理 25function logwrite(postdata, result) { 26 var ss = SpreadsheetApp.getActiveSpreadsheet(); 27 var log_sheet = ss.getSheetByName('log'); 28 var now = new Date(); 29 var time = Utilities.formatDate(now, 'Asia/Tokyo', 'yyyy-MM-dd HH:mm:ss'); 30 log_sheet.appendRow([time, result, postdata]) 31}

投稿2020/11/27 13:58

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LuiNy7tiNYEfg3A

2020/11/30 03:12

スクリプトエディタを保存すると、コードがスプレッドシートに反映されると思っていたのが間違っていました。 スクリプトエディタを更新した際に、ウェブアプリケーションとして公開→NEWから再び保存することで解決しました。ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問