どうもこたにんです。
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には、こんな感じで。
:full_moon_with_face: が可愛い。
、、、まあこれだけでは利用価値がないですね。
もう少しちゃんと使ってみると、こうなります。
GASlack
.init('https://hooks.slack.com/services/hoge/fuga/piyo')
.profile('妖精さん', ':male_fairy:')
.message('ありのままでいいのかな?')
.send();
これも実質1行!
Slackを見てみると、名前とアイコンが設定されてメッセージも入りました。
いいよー!
うんうん、いい感じだ。
ということで今回は、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されません。
ちなみに、ソースコードはこちらから見ることができます。
GASlack の使い方
導入はすごく簡単です。
ライブラリなので、GAS上でインポートします。
GASのメニューから、リソース→ライブラリ... を選択します
以下のキーをコピーしてテキストエリアに乗っけて追加。
MBbLluykUSqNS3Q7HmW5P3ljFZdwsoPGh
追加されたら最新のバージョンを指定して保存します、これでライブラリのインポートおわり。
あとは自身のGASコード内で、GASlackを呼び出せばおっけー。
初回実行時にリクエスト権限の追加が求められますが、OK連打でいけます。
まとめ
完全に自分のためだけに作ったものを公開ライブラリ化できました!
Slackのwebhookはもっとたくさん機能あるんだけどね。
(ファイル添付したり色変えたりいろいろ)
ライトに使うためのものなので機能は一旦ここまで。
時間と機会と需要があれば、少しずつ機能拡張していければと思います。
それではみなさん、ぜひ使ってやってください。
GASlack!!