今回は、Google Apps Script (GAS) でSlackのAPIが簡単に取り扱えるライブラリの紹介です。
ここでは、SlackにインストールしたBotからメッセージを通知するものを作ります。
Slackの設定
Appの作成
Slack API のページを開く
「①Create New App」→「②From scratch」をクリック
「App Name」にはアプリ名(表示名、後で変更可)
その下はAppを導入するワークスペースを選択
スコープの設定
Basic Infomation (最初の画面) にある「①Add features and functionality」→「②Permissions」をクリック
Scopes の項目で「Add an OAuth Scope」をクリック
ここでは、このApp(Bot)がアクセスできる操作を指定する。
※「Bot Token Scopes」と「User Token Scopes」の2つあるが、今回は前者を使用
「chat:write」と「chat:write.public」をクリック
※「chat:write.public」を有効にすると、Botがチャンネルに参加していなくてもメッセージが送信できる。
Botの設定
Basic Infomation (最初の画面) にある「①Add features and functionality」→「③Bots」をクリック
Your App’s Presence in Slack の項目にある App Display Name の「Edit」をクリック
「Display Name」は表示されるBot名
「Default username」はSlackで参照する際に使用される名前
AppをSlackにインストール
Basic Infomation (最初の画面) にある「①Install your app」→「②Install to Workspace」をクリック
この画面が出る場合は、Botの設定で Display Name を設定できていない可能性があります。
Tokenを確認
Basic Infomation (最初の画面) にある「①Add features and functionality」→「②Permissions」
「Bot User OAuth Token」に記載されているものが Token です(GASで設定します)
GASの設定
ライブラリ(SlackApp)の追加
GASの左側にあるライブラリの”+” をクリック → 以下のスプリクトIDを入力し、検索
1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
IDの欄に「SlackApp」が表示されたら「追加」をクリック
Slackに通知するプログラム
コードに以下を記述
-
xoxb-xxxxx
には先程取得した Token を入力 -
channelId
にはチャンネル名(“#”が必要) or “C”から始まるチャンネルID(チャンネル詳細画面で取得可) を入力
function sendSlack() {
const slackApp = SlackApp.create("xoxb-xxxxxx");
const channelId = "Cxxxxxxxx";
//or const channelId = "#general";
const text = "Hello World";
slackApp.postMessage(channelId, text);
}
承認が必要な場合
はじめて実行する場合は「承認が必要です」通知が出てきます。
「権限を確認」をクリック
※この後、Googleアカウントを選択する画面が出てくる場合があるので、使用しているアカウントでログイン
さらに左下の「***(安全ではないページ)に移動」をクリック
完成
編集記
↓ここにも同じ内容の記事書いていますので、ぜひ参考に
https://tech.minagu.work/archives/13