Slack API を使って email から User ID を取得


はじめに

連携しているアプリから Slackへメッセージを送る際に、特定のユーザにメンションしたい場合、メンバーID(User ID)が必要になるのですが、User ID って W012A3CDE みたいな文字列なので連携アプリ側からはわからないことが多いです。

そんな時は API を使って、email から User ID を取得すれば解決!

試してみたので備忘メモとして残します。

使ったAPI

使ったAPIは https://slack.com/api/users.lookupByEmail です。
ドキュメント見れば、本記事なんて読まなくてもすぐわかります!笑笑

1. アプリの登録

Slack の Your Apps でアプリを登録します。
すでに登録済みのものを使う場合はこの手順飛ばしてOKです!

1. Your Apps 画面

  • "Create New App" を押下

2. Create an app 画面

  • "From scratch" を押下

3. Name app & choose workspace 画面

  • "App Name" を入力
  • "Pick a workspace to develop your app in:" でアプリを作成するワークスペースを選択
  • "Create App" を押下

4. アプリの Basic Information 画面

  • 作成完了したら表示される

2. アプリをワークスペースへインストールして token 取得

1. [OAuth & Permissions] メニュー で Scopes を登録

  • Scopes が何も登録されてないとワークスペースへインストールできないのでまずはScopesの登録
  • 画面下の方にある [Scopes] の項目で "Add an OAuth Scope" 押下

  • https://slack.com/api/users.lookupByEmail を使うには users:read のスコープが必要なのでそれを選択 して登録する

2. ワークスペースへインストール

  • "Install to Workspace" を押下
  • OAuth & Permissions のメニューから行っても良いし、Install App のメニューからでも良い

  • 許可を求められるので問題ないこと確認して許可する

3. トークンを確認

  • 無事発行されてます
  • API叩くときにこのトークンを使います

3. いざAPI!

APIの仕様を Slackのドキュメント で詳細確認してその通り利用します。

今回は https://slack.com/api/users.lookupByEmail を使うので、下記でOK

GET
https://slack.com/api/users.lookupByEmail?email=[メールアドレス]&token=[取得したトークン]

ユーザ情報のJSONが返却されるので、そこから User ID の情報を取得して使えば良いです。


以上、何の悩みポイントもないです簡単簡単〜。