Closed hakatashi closed 3 weeks ago
slackbot開発時のAPIの動作確認、および他のBOTを開発する際の雛形として使えるBOT、「helloworld」を実装しました。
ユニットテストやESLintの設定など、Slackbotとして必要な最低限の機能が備わっています。
また、このBOTを作成する過程で Slack Node SDK を更新したところ、型定義がより厳密になったことでTypeScriptの型エラーが発生したため、slackbot全体のエラーを修正しました。
特に大きな修正点として、ChatPostMessageArgumentsの型定義が大幅に修正され、以下のようなオプション指定が不可となりました。
icon_url
icon_emoji
thread_ts
reply_broadcast
channel
これらに基づいて各所のオプションの指定を修正しました。特にAteQuizの solvedMessage や unsolvedMessage の指定では thread_ts を指定せずに reply_broadcast を指定している部分が大半だったため、AteQuiz側で reply_broadcast オプションの値を制御し、呼び出し側では指定しなくて良くなるようにしました。
solvedMessage
unsolvedMessage
また、WebAPICallOptions が削除されたため、これも都度適切な型を参照するように修正しています。
WebAPICallOptions
chat.update
username
あと @hideo54 のApproveがほしいけど、マージしちゃうか
実装したこと
slackbot開発時のAPIの動作確認、および他のBOTを開発する際の雛形として使えるBOT、「helloworld」を実装しました。
ユニットテストやESLintの設定など、Slackbotとして必要な最低限の機能が備わっています。
副次的修正
また、このBOTを作成する過程で Slack Node SDK を更新したところ、型定義がより厳密になったことでTypeScriptの型エラーが発生したため、slackbot全体のエラーを修正しました。
特に大きな修正点として、ChatPostMessageArgumentsの型定義が大幅に修正され、以下のようなオプション指定が不可となりました。
icon_url
とicon_emoji
を同時に指定するthread_ts
を指定せずにreply_broadcast
を指定するchannel
を指定しないこれらに基づいて各所のオプションの指定を修正しました。特にAteQuizの
solvedMessage
やunsolvedMessage
の指定ではthread_ts
を指定せずにreply_broadcast
を指定している部分が大半だったため、AteQuiz側でreply_broadcast
オプションの値を制御し、呼び出し側では指定しなくて良くなるようにしました。また、
WebAPICallOptions
が削除されたため、これも都度適切な型を参照するように修正しています。その他の修正内容
chat.update
メソッドの呼び出し時にusername
,icon_emoji
などを指定している部分を削除 (以前から指定する意味はなかったと思われる)username
などが必須のプロパティでなくなったため、テストなどでは in type guard を用いたコードに修正