Slackボットでタイムアウトや投稿失敗することが有る。

実現したいこと

**Slackボットでお天気通知
**
以前の、問い合わせ内容です。これは解消できましたが、タイムアウトすることがあるので、出来るだけ避けるようにしたいのですが、いい方法が見つかりません。iPhoneのアプリがダメなだけな気もします。パソコン💻Windowsアプリからは大体正常に返ってきて、iPhoneだけ失敗する確率が高いので、アプリや通信環境に依存するのでしょうか。
いずれにしてもエラー発生率を下げたいです。

恐れ入ります。参考になるサイトがあればご教示いただけますと幸いに存じます。

発生している問題・分からないこと

スラッシュコマンド(/rain)でお天気通知するのですが、その時にボットが『天気を唱えた』と投稿するのが正常なのです。
しかし無料APIの範疇なのでタイムアウトや投稿失敗(厳密には天気通知は成功するが上の『天気を唱えた』だけが投稿失敗)
することがあります。
例外処理のような、Slackボット(GAS)書き方の参考サイトを教えていただけますでしょうか。

タイムアウト

イメージ説明

該当のソースコード

GAS

1//認証作業 2function doPost(e) { 3 var res = {}; 4 // Verification Tokenで取得するトークン ここら辺は働いていません。 5 var legacyVerificationToken = PropertiesService.getScriptProperties().getProperty("SLACK_VERIFICATION_TOKEN"); 6 const params = e.parameter; 7 const command = params.command 8 const userId = params.user_id 9 //const event = params.event; このイベント取得あたりをうまくできたらいけそうですが書き方やプロパティ名の誤り 10 11 if (params.type === "undefined") { 12 return post("invalid request"); 13 } 14 15 //Challenge認証用 必須 16 if (params.type === 'url_verification') { 17 res = {'challenge':postData.challenge} 18 //return ContentService.createTextOutput(params.challenge); 19 return ContentService.createTextOutput(JSON.stringify(res)).setMimeType(ContentService.MimeType.JSON); 20 } 21 22 //処理 23 switch (command) { 24 case '/rain': 25 main(); //こちらのメイン処理がお天気通知してます。Slackから/rainと打つと天気を投稿します。こちらは問題ありません。 26 let response = { text: '…天気を唱えた' }; //たとえばこれがタイムアウトになる。こっちが問題 27 return ContentService.createTextOutput(JSON.stringify(response)).setMimeType(ContentService.MimeType.JSON); 28 case '': 29 let excuse = { text: 'お天気お姉さんは' + userId + "が天気を唱えた" }; //コマンド未作成ですがここも同様な問題が発生すると思います。 30 return ContentService.createTextOutput(JSON.stringify(excuse)).setMimeType(ContentService.MimeType.JSON); 31 32 default: 33 return ContentService.createTextOutput(JSON.stringify(e)); 34 } 35}

試したこと・調べたこと

上記の詳細・結果

参考サイト

補足

特になし

コメントを投稿

0 コメント