概要
slackのメッセージ入力欄で、/user_channel @{user_name}
と入力すると、@{user_name}
が所属しているパブリックチャンネル一覧を自分だけに表示できるようにする。
Slack APIの設定
Slack API: Applications | Slack
- Create New App で新しいAppを作成
- Basic Information > App Credentials の Verification Token をコピー
- OAuth & Permissions > Scopes > Bot Token Scopes で commands と channels:read を追加
- Install App を押し、Bot User OAuth Access Token をコピー
GAS の設定
Apps Script – Google Apps Script
function doPost(e) { if (e.parameter.token != '${Verification Token}') { throw new Error('Invalid Token'); } var user = e.parameter.text.slice(2,11) var token = '${Bot User OAuth Access Token}' var url = `https://slack.com/api/users.conversations?token=${token}&limit=200&user=${user}&pretty=1` var channelList = JSON.parse(UrlFetchApp.fetch(url)).channels; var text = e.parameter.text + "の所属チャンネル一覧\n" for (var i in channelList) { var channel = channelList[i] text += "<#" + channel.id+ "|" + channel.name + ">\n" } var message = { response_type: "ephemeral", attachments:[{text:text}] }; return ContentService.createTextOutput(JSON.stringify(message)).setMimeType(ContentService.MimeType.JSON); }
- 公開 > ウェブアプリケーションとして導入
- Current web app URL をコピー
Slash Commands の設定
Slack API: Applications | Slack
- Building Apps for Slack > Add features and functionality > Slash Commands で Create New Command
- Command に
/user_channel
、Request URL に GAS の Current web app URL を入力してSave