この記事では、GASを使って、Slackワークスペースの「ユーザー名」と「ユーザーID(メンバーID)」をスプレッドシートに取得する方法を紹介します。
取得イメージはこちら↓
スポンサーリンク
ワークスペースのユーザーリストを取得する
前提:SlackAppの作成と、ワークスペースへのインストールが完了していること
OAuth & Permissionsの設定
SlackAPIのappページで必要情報を取得・設定します。
Your Apps(https://api.slack.com/apps/)
- token xoxb-で始まる文字列
- scope users:read を設定(https://api.slack.com/scopes/users:read)
- method users.list を使用(https://api.slack.com/methods/users.list)
①tokenの取得
OAuth & Permissionsのページでtokenをコピーします。
②scopeの設定
「Add an OAuth Scope」をクリックして、「users:read」を追加します。
ワークスペースに存在するのユーザー名とIDを取得する
変数slack_app_tokenの値を設定し、スクリプトを実行します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
function getSlackUser() { const slack_app_token = "xoxb-***************************"; const options = { "method" : "get", "contentType": "application/x-www-form-urlencoded", "payload" : { "token": slack_app_token } }; const url = "https://slack.com/api/users.list"; const response = UrlFetchApp.fetch(url, options); const members = JSON.parse(response).members; let arr = []; for (const member of members) { //削除済、botユーザー、Slackbotを除く if (!member.deleted && !member.is_bot && member.id !== "USLACKBOT") { let id = member.id; let real_name = member.real_name; //氏名(※表示名ではない) arr.push([real_name,id]); } } //スプレッドシートに書き込み const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('slack'); sheet.getRange(1, 1, sheet.getMaxRows()-1, 2).clearContent(); sheet.getRange(1, 1, arr.length, arr[0].length).setValues(arr); } |
スプレッドシートに、ユーザー名とIDの一覧を取得できました。
スポンサーリンク
スポンサーリンク