※この記事は<ストーリー編>と<論理編>に分かれております。諸事情により詳しい技術のお話は別記事にまとめたいと思います。(じ、時間がなかったわけじゃないんだからね!)
##<ストーリー編>
どうも、おはこんばんにちわ!
みなさん社内のチャットツールは何を使っていますか?
僕が所属する会社では、"slack"です。
slackを使っているIT企業は多いのではないでしょうか。
そんなslackを使う中で、常日頃から不便に感じていた問題がありました。
それは、「チャンネルに複数のメンバーを招待するのがめんどくさい」問題です。
数人ならまだ良いのですが、僕たちは業務上、新しいチャンネルを作り、そこに40人くらいのメンバーを招待するという作業を、頻繁に行います。
この40人の招待が、めちゃくちゃ面倒くさい。
一般的な招待の仕方は、下記のような画面で、一人一人検索して招待するのですが、
なぜか検索に引っかからない人もいるんですね🤔
なぜなんだ。。。
この作業にかかる時間とストレスを、削減するための結論が、
「そうや!スラッシュコマンドや。あれをカスタマイズして、コマンド1つで任意のメンバーを全員招待できるようにしよう。」
です。
#<論理編>
ここからは、実際に僕が、スラッシュコマンドをにカスタマイズした、手順と考え方についてです。
僕は本当に何もわからなかったので、とても苦戦しました。
簡単にまとめると、
①slack api を使いslack側にアプリを作成。どのワークスペースに結びつけるかもこの時。
②今度は、slackの外に、実際にスラッシュコマンドを打った時に、動く肝心のアプリを作る。
③slack apiに戻り、何というスラッシュコマンドを叩いた時に、どのアプリにアクセスするかを設定。
→完成!
という流れです。
①については、下記の記事を参考に作りました。
https://qiita.com/t-mimura/items/d6541ec596bdebea5a7b
slackにはデフォルトで、スラッシュコマンド が複数用意されていますが、
さらに、カスタムしやすいように、「slack api」 というgemがあり、これをインストールすると、便利なメソッドがたくさん使えるようになります。
それらは②の工程で使うことになるでしょう。
今回僕が使ったのは、.users_list や .groups_invite です。
まず、 .users_listで全ユーザー情報を集め、その中で該当するユーザーだけ取得します。
プライベートチャンネルに複数人招待するメソッドが .groups_invite になります。
.groups_inviteを使い、任意のユーザーをプライベートチャンネルに一度に招待可能というわけです。
どうですか?簡単に聞こえますよね。
ちなみに僕はわからなすぎて、形になるまでに1ヶ月くらいはかかりました。死
次回、「具体的なコードはこう書いた!」お楽しみに!!!!!