Google Apps Scriptで簡単に!SlackのメンバーIDを取得する方法

SlackのメンバーIDを取得する方法って、なんだか難しく感じるなぁ…。特にGASなんて聞いただけでドキドキしちゃう。
猫男
猫男
catman
catman
安心しろ、catmanがGASとSlackを使ったメンバーIDの取得方法を教えてやろう。簡単だから心配いらないさ。

 

GASを使ってSlackメンバーIDを取得する準備

GASでSlackのメンバーIDを取得するためには、まずSlack APIを使えるように準備を整える必要があります。

Slack API Tokenを用意する

Slack APIを利用するために必要なSlack API Tokenを生成します。

SlackのWebサイトにログインし、「Your Apps」から新しいアプリを作成します。

アプリのスコープに「users:read」を追加し、ユーザー情報へのアクセスを許可します。

生成されたAPI Tokenを控えておきましょう。

GASプロジェクトを作成する

次に、GoogleのスプレッドシートからGASプロジェクトを作成します。

スプレッドシートを開いて「拡張機能」から「Apps Script」を選択します。

新しいGASプロジェクトが開かれたら、スクリプトを書ける準備が整いました。

 

GASコードでSlackメンバーIDを取得する

いよいよGASでSlackメンバーIDを取得します。難しそうに見えますが、実際にはシンプルなステップです。

SlackメンバーID取得のためのスクリプト

このスクリプトを使って、SlackのメンバーIDを取得します。


function fetchSlackMemberIds() {
  const token = 'YOUR_SLACK_API_TOKEN';
  const url = 'https://slack.com/api/users.list';

  const options = {
    method: 'get',
    headers: {
      'Authorization': 'Bearer ' + token,
    }
  };

  const response = UrlFetchApp.fetch(url, options);
  const data = JSON.parse(response.getContentText());

  if (data.ok) {
    const members = data.members.map(member => ({
      name: member.real_name,
      id: member.id
    }));
    Logger.log(members);
  } else {
    Logger.log('Failed to retrieve Slack members: ' + data.error);
  }
}

このスクリプトはSlack APIを利用してチームのメンバーリストを取得します。

取得したメンバー情報は、real_nameidを持つオブジェクトの配列としてログに出力されます。

スクリプトの実行

スクリプトエディタで「▶」(実行)ボタンを押すと、スクリプトが実行されます。

ログにメンバーの名前とIDが表示されます。これで、SlackメンバーIDの取得が完了です。

わぁ、こんなに簡単にSlackのメンバーIDが取得できるんですね!catman、すごいです!
猫男
猫男
catman
catman
GASを使えば便利に情報が引き出せるようだ。これからもどんどん活用していこう。

 

練習問題

  1. Slack API Tokenを入手する手順を説明してください。
  2. GASでSlackメンバーIDを取得するスクリプトを実行したとき、何がログに表示されるか説明してください。
  3. 取得したいメンバーの情報を増やしたい場合、スクリプトにどのような変更が必要か考えてみてください。

 
 

解答・解説


1. Slack API Tokenを入手する手順:
  - Slackにログインし、「Your Apps」から新しいアプリを作成します。
  - アプリに「users:read」スコープを追加して、ユーザー情報の取得を許可します。
  - 生成されたAPI Tokenを確認し、控えておきます。

2. スクリプト実行時のログ出力:
  - 実行すると、チームのメンバー情報が名前(real_name)とID(id)としてログに表示されます。

3. メンバー情報を増やすには:
  - スクリプトの <code>members</code> 配列で、必要なプロパティを追加します。例えば、以下のように status_text を取得するコードを追加します。

const members = data.members.map(member => ({
  name: member.real_name,
  id: member.id,
  status: member.profile.status_text // 新しいプロパティを追加
}));

status_text を追加した場合、メンバーのステータステキストも合わせて表示されます。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。