Googleスプレッドシートにデータを保存するためのカスタムスラッシュコマンドを設定しました。すべてが完全に動作します(スクリプトは起動し、その魔法を実行します)を除いて応答が長すぎます(指定された最大値は3000ms以上です)、スラックはtimeout
エラーをスローします。タイムアウトエラーを返すGoogle Scriptへのスラックコマンド
簡略化され、Googleのスクリプト:
function doPost(request) {
//// get data from slack payload
var params = request.parameters;
//// call a function with given parameters
custom_function(params);
////
var output = {"text":"SUCCESS"};
//// respond to slacks POST request
return ContentService.createTextOutput(JSON.stringify(output)).setMimeType(ContentService.MimeType.JSON);
}
結果:原因custom_function();
終了return ContentService. ...
の長い実行時間に が緩み
に=(過去の3000msがTIMELIMIT)遅すぎるtimeout
エラーが来ます追加情報:UrlFetchApp.fetch(url,options);
で遅延応答を設定しました。コードはです。- これらの応答はタイムアウトエラーとともにSlackで受信されています。
質問:私はcustom_function();
が終了するまで待って、すぐに戻っていくつかのHTTP 200 OK
を送信する必要はありませんどのような方法がありますか?私の場合のdoPost();
にはcustom_function
から何も必要ありません。
感謝!
だから、ポストスクリプトは、トリガをセットアップするコードを終了し、xミリ秒後に私のcustom_functionがトリガされますか?それがとてもシンプルであることを期待していなかった:D ...これを今試みよう!ありがとう! –
したがって、トリガーを設定することはチャームのように機能し、実際にその機能をトリガーします。唯一のこと:私はSlackから受け取ったパラメータをその関数にどのように渡すのですか? 'Class PropertiesService'で? –
感謝@Spencerイーストン!今はA +のように機能します!私は 'JSON.stringify'と' JSON.parse'を使用してPropertyServiceにすべての値を格納する必要がありました。 –