Binary Diary

so beautiful beautifulさ

GASからSlackに簡単にメッセージ送信!ライブラリGASlackを自作してみた!

どうもこたにんです。

GASでいろいろ作ってると、最終的にSlackにPOSTすることが多い。
そのときいっつも決まって、SlackにPOSTするメソッドをコピペしているのです。
簡単なメッセージであれば、このメソッドを書き換えるだけで送れます。

function sendSlack() {
var postUrl = 'https://hooks.slack.com/services/hoge/fuga/piyo';
var json = {
'username' : 'hoge',
'icon_emoji' : ':hoge:',
'text' : 'hoge'
};
var json = {
'method' : 'post',
'contentType' : 'application/json',
'payload' : JSON.stringify(json)
};

UrlFetchApp.fetch(postUrl, options);
}

hogeなところを適宜書き換えてしまえばいいだけです。
ただ、何かGASで作るたびにこのメソッドをコピペするのはなんかやだなって。
せっかくならライブラリ化できないかな、と思い立ったのでやってみた!

その名も、、、

GASlack!!

安直!安易!だがしかしそれがいい!!

GASからSlackに簡単なメッセージ送信だけであれば、GASlackを使えば楽ちん。
最短1行でメッセージが送信できます。

百聞は一見にしかず。
実際に使ってみたコードをまずはご覧ください。

GASlack.init('https://hooks.slack.com/services/hoge/fuga/piyo').send();

わずか1行!
webhookするURLさえ指定してあげれば、これだけでSlackに一応飛びます。

Slackには、こんな感じで。

f:id:Kotanin0:20200202125539p:plain

:full_moon_with_face: が可愛い。

、、、まあこれだけでは利用価値がないですね。
もう少しちゃんと使ってみると、こうなります。

GASlack
.init('https://hooks.slack.com/services/hoge/fuga/piyo')
.profile('妖精さん', ':male_fairy:')
.message('ありのままでいいのかな?')
.send();

これも実質1行!

Slackを見てみると、名前とアイコンが設定されてメッセージも入りました。

f:id:Kotanin0:20200202131755p:plain
いいよー!
うんうん、いい感じだ。

ということで今回は、GAS愛とSlack愛に溢れたみなさまのために。
GASからSlackに簡単にメッセージをPOSTできるGASライブラリ GASlack の紹介になります!

 

 

 

GASlack のメソッドたち

使い方はシンプル。
先のコードが一番わかりやすいです。

GASlack
.init('https://hooks.slack.com/services/hoge/fuga/piyo')
.profile('妖精さん', ':male_fairy:')
.message('ありのままでいいのかな?')
.send();

.init(webhookUrl)

GASlackインスタンスを生成します。
生成時に引数でwebhookUrlを渡します。
Slack側であらかじめwebhookUrlを取得しておきましょう。

.profile(name, icon)

Slackに表示する表示名、アイコンを指定できます。
指定しなければ :full_moon_with_face: の test user になります。

.message(msg)

Slackに表示するメッセージを指定します。
何も難しいことはありません、指定するだけです。

.send()

これが発火の合図です。
.send() しない限りSlackへはPOSTされません。

ちなみに、ソースコードはこちらから見ることができます。

https://script.google.com/d/1xEDRZNvoAwgk76p3rSl_os-YCi6V0S5n2kx0irkhRHQyjtnMVsoUxZDd/edit?usp=sharing

 

GASlack の使い方 

導入はすごく簡単です。
ライブラリなので、GAS上でインポートします。

GASのメニューから、リソース→ライブラリ... を選択します

f:id:Kotanin0:20200202140024p:plain


以下のキーをコピーしてテキストエリアに乗っけて追加。

MBbLluykUSqNS3Q7HmW5P3ljFZdwsoPGh

追加されたら最新のバージョンを指定して保存します、これでライブラリのインポートおわり。

f:id:Kotanin0:20200202141241p:plain

あとは自身のGASコード内で、GASlackを呼び出せばおっけー。

初回実行時にリクエスト権限の追加が求められますが、OK連打でいけます。

まとめ

完全に自分のためだけに作ったものを公開ライブラリ化できました!

Slackのwebhookはもっとたくさん機能あるんだけどね。
(ファイル添付したり色変えたりいろいろ)
ライトに使うためのものなので機能は一旦ここまで。

時間と機会と需要があれば、少しずつ機能拡張していければと思います。
それではみなさん、ぜひ使ってやってください。

GASlack!!