目的
GAS でSlack ボットユーザーとしてChannleにメッセージを投稿する
※通知が鳴りません。
※メリットはユーザーとして投稿するため メッセージを修正できます。
※自分がSlackのオーナーである必要があります。
今回参考にさせていただいたサイト
https://qiita.com/mizuki_takahashi/items/3f77c2e5b6142563ce66
ありがとうございました。
内容
1.対象のslack App を指定する
1.ブラウザからslackにログインする
https://slack.com/intl/ja-jp
2.slack APP のページを開く
https://api.slack.com/apps/
3.右上の【Your Apps】 をクリックし、自分の「App Name」 を選択する
Slack appを作成したことがない場合は下記記事の「Slackアプリの作成」をご参照ください。
【Slack】Bot User OAuth Tokenの取得方法
https://qiita.com/80syokumotsu/items/041e99e99d8ecaa3c42b
2.スコープの権限を追加する
1.【OAuth & Permissions】をクリックする
2.【Scopes】枠の【User Token Scopes】配下の「Add an OAuth Scope」をクリックする
3.プルダウンから 「chat:write」 の権限を追加する
追加する権限 [chat:write]
3.アプリ更新
画面上部にメッセージが表示されるので 「reinstall your app」 をクリックする
4.Googleの許可
「許可する」を選択します
5.トークン取得
【OAuth & Permissions】に表示された
User OAuth Tokenを取得する
6.ライブラリー追加
※ライブラリとは
GASでは、作成した関数を他のプロジェクトから利用できる仕組みが用意されていて、それをライブラリと言います。
GASからSlackにメッセージ送信するのに便利なライブラリーを利用させていただきます。
1.新しいスプレッドシートを作成する
2.スプレッドシート(右上)の【拡張機能】 → 【App Script】 の順にクリックする
3.GASのスクリプトエディタエディタの画面でライブラリの横にある+アイコンをクリックする
4.ライブラリの追加画面で、スクリプトIDの入力欄にSlackAppのスクリプトIDを入力し、「検索」ボタンをクリックする
SlackAppのスクリプトID:1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
5.IDが「SlackApp」になっていることを確認し、バージョンも最も大きい数字のものにして「追加」ボタンをクリックする
6.GASのスクリプトエディタのライブラリの下に「SlackApp」が追加されていることを確認する
7.Slackの対象Channelに作成したボットを追加する
3.インテグレーション タブを開く
6.メンバーを追加したい場合は、再度 channel名をクリックし「メンバー」タブを開く
8.コード作成
1.トークン指定のGAS作成
function SetScriptProperty() {
PropertiesService.getScriptProperties().setProperty('token', 'ここにAPIトークンを入力してください');
}
2.Slackへ通知するGAS作成
var options = {
as_user: true
}
as_user: true にするとユーザーとしてつぶやけます。
//指定したチャンネルにボットユーザーとしてSlack に通知する
function SlackPostMessage() {
const user_token = PropertiesService.getScriptProperties().getProperty("token");
var slackApp = SlackApp.create(user_token);
var channelId = "チャンネルID"
var message = "Hellow slack";
var options = {
as_user: true
}
slackApp.postMessage(channelId, message, options);
}
9.実行
slackユーザーとしてメッセージを通知できたことを確認