ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

Slack botを作って遊ぶ

心がしんどくてやる気が出ないときは、自分がやる気を持てるものをやるのが大事だなって思ったので、前からやってみたかったSlack botを作りました。

作ったもの

「審議」「有罪」「無罪」というemojiが前からあったのでこれを使って裁判ができるbotを作った。

使用技術

  • Node.js
  • Slack Real-time messaging API(みたいな名前だった気がする…。以下RTM)
  • node-slack-sdk

こんな感じ。完全に思いつきで作り始めたのでコードが悲惨なことになったけどそれは後で書き直す。

所感

  • 思った以上に簡単。ビビる。
    • このへんはQiitaにでも書きます。
    • RTMはWebSocketを用いて実現されていて、botが参加している会話で起こるありとあらゆるイベントが降ってくるというもの。(メッセージが投稿された/消えた/リアクションがついた/消えたなど様々)本来なら接続が切れた時の再接続やらイベントハンドリングやらを自分でごちゃっとやらねばならないのだが、その辺は全部SDKがやってくれるので素敵。
  • 自分の素のJSに対する知識の薄さを痛感
    • Class周りがやばい…かも
  • SlackのAPIドキュメント、場所がわかりづれえ。
    • 恐らくSDKを使う人が見なければいけないのはEvent Types
    • 見つけてさえしまえば中身はとってもわかりやすくて好印象
    • こういうところがちゃんと整備されてるのも世界中のエンジニアから愛される秘訣なんだろうなぁ

こんな感じだろうか。コードは後ほどリファクタリングしたらGitHubにでもあげるつもり。

雑談

試し書きとして書いたSlack botを供養する

チャンネルが凍りつくSlack bot

なんとなくコードの雰囲気が伝わるだろうか。(今気がついたけどmessagesグローバル変数になってる🤯最近Rubyばっかやってたので変数宣言間違えがち。てかなんならこの変数毎回初期化する必要性どこにもないね)

実際に使うとこうなる。

ぜひあなたのチームにも()