- Slackからの新しいイベントとスラッシュコマンドをリッスンする
- これらのイベントとコマンドを処理して適切な関数に送る
- ボットが初めてチャンネルに追加されたときにBoxグループに追加されるようにチャンネル内のすべてのSlackユーザーを処理する
- Slackユーザーのプロフィール情報を取得してそのメールアドレスを取得する
Slackイベントのリッスン
Slackアプリケーションを構成したときに、3つのイベントのアプリケーションコードにイベントを送信するようSlackアプリケーションに指示しました。- ユーザーがチャンネルに参加したとき。
- ユーザーがチャンネルから退出したとき。
- ユーザーが
/boxaddスラッシュコマンドを入力したとき。
Slackイベントの処理
次に、受信したイベントを判定し、アプリケーションの適切な機能にそのイベントを渡します。Slackユーザーの処理
次に、User Eventの処理方法を定義する必要があります。ここで説明すべきイベントは以下の3つです。- ボットがチャンネルに追加された。
- 通常のユーザーがチャンネルに参加した。
- 通常のユーザーがチャンネルから退出した。
- ユーザーがボットの場合は、Boxグループを初期化し、チャンネルの現在のユーザーをすべてBoxユーザーとしてグループに追加する必要があります。これは、既存のチャンネルに追加されるボットを構成するためです。この処理は、以前ユーザーが存在していたチャンネルにボットが再度追加される場合には無視されます。
- ユーザーがチャンネルに参加した場合は、グループにユーザーを追加する必要があります。
- ユーザーがチャンネルから退出した場合は、グループからユーザーを削除する必要があります。
Slackチャンネルユーザーの処理
ボットは、初めてチャンネルに追加されたときに、現在チャンネルに含まれている全ユーザーのリストを取得し、そのユーザーを含むBoxグループを作成してチャンネルの基礎を作成する必要があります。 このコードは、複数の処理を順番に実行します。- 最初に、Slack APIを呼び出し、チャンネルのすべてのメンバーを取得します。
limitを調整して、チャネルのユーザーをさらに収集できます。- 見つかったユーザーごとに、
getSlackUserを呼び出してそのユーザーのプロフィールを取得し、メールアドレスをBoxユーザーのメールアドレスにマップできます。 - 各ユーザーは
addGroupUserに送信され、グループに追加されます。
Slackユーザープロフィールの取得
Slackに関連した最後の関数は、他の関数によって使用されるユーティリティメカニズムです。この関数は、Slack APIを呼び出して、Slackイベント/コマンドが提供するユーザーIDまたはチャンネルユーザーのリストを取得したときに提供されるユーザーIDが指定されたユーザープロフィールを取得します。メールアドレスを使用してSlackユーザーをBoxユーザーと照合しているため、ユーザープロフィールの検索では、メールアドレスのフィールドに注意します。Boxのメールアドレスは一意であり、複数のアカウントに使用することはできません。つまり、ユーザーアカウントの検索に使用すると効果的です。
まとめ
- 受信イベントを確認し、処理するために転送しました。
- イベントを処理し、適切な関数に転送しました。
- チャンネル内のすべてのユーザーを処理する関数と1人のユーザーのSlackプロフィールを取得する関数を実装しました。
