Slackに自動で猫の画像を送る(GAS+APIでさくっと作る)
どんなApp(Bot)?
定期的に
- 猫 🐈
- 犬 🐕
- キツネ 🦊
のランダムな画像をslackの特定のチャンネルに送信する。
Google Apps Script(GAS)
+
Slack API
ざっくり解説
Slack側でやること
- SlackAppの作成
- WebHookURLの発行
Slack側でメッセージ受信するためにWebHookURLの設定を行う。
GAS側でやること
- 定期的に実行するスクリプトの作成
- GASのトリガー設定
トリガー設定でどのくらいの頻度で、メッセージを送信するか設定できる。
1.Slackアプリをつくる
こちらのサイトを見ながら作成。
割愛します。
2.WebHookURLを作成する
Incoming WebHooksとは
Incoming WebHooksというSlackのサービスを使う。
👇
WebURLが発行される。
👇
発行されたURLにPOSTする
👇
Slackへ投稿!
Incoming WebHooksを使うには
- 「機能」ページで「Incoming Webhook をアクティブにする」をオンにする
- 「新しい Webhookをワークスペースに追加する」をクリック
- アプリの投稿先のチャンネルを選択して「許可する」をクリック
3.GASのスクリプトの作成
Google Apps Scriptを開く
Gmailアカウントや、会社のGmailアカウント等でGoogleドライブの画面を開きます。
(chromeなら左上のほうに「アプリ」のアイコンがあるはず…!)
Googleドライブ
👇
その他
👇
Google Apps Script
でGASのスクリプトを作成できます。
APIをよびだしてSlackへ送信
ランダムに画像を送信するためにAPIを使います。
🐈 猫 RANDOMCAT
🐕 犬 shibe.online
🦊 キツネ RANDOMFOX
猫の画像を送信する
function autocat() {
// APIの呼出し
const url ='https://aws.random.cat/meow';
const rescat = UrlFetchApp.fetch(url);
Logger.log(rescat);// ログで確認
// JSON形式に変換
catJSN =JSON.parse(rescat.getContentText());
Logger.log(catJSN);// ログで確認
// 画像のURLを取得
catimg = catJSN.file
Logger.log(catimg);// ログで確認
// 投稿するコンテンツの作成
const jsonData =
{
"username" : "ユーザ名てすと",
"icon_emoji": ":Cat:",
"attachments" : [{
"fields": [
{
// 任意のタイトルとコメントに設定
"title": "ねこ",
"value": "ここは画像の説明を記述できます。",
}
],
// APIで取得した画像のURLを設定する
"image_url": catimg
}]
};
const payload = JSON.stringify(jsonData);
// リクエスト内容
const options =
{
"method" : "post",
"contentType" : "application/json",
"payload" : payload
};
//投稿先
UrlFetchApp.fetch("各自のSlackWebHookURL", options);
}
犬の画像や、キツネの画像も似たようなコードで動作します。
各APIによって、データの形式異なるのでログを見て確認しながら画像URLを取得します。
スクリプトの実行
「Ctrlまたはcommand」+「S」で保存します。
「実行ボタン」を押して実行します
実行ボタンを押すとエラーが出るので、下記の記事を見ながら対処。
他にも
gas スクリプト 実行 警告
なんかでググると良いかと思います。
上手くいけば指定したチャンネルに画像が送信されているはずです。
4.スクリプトのトリガーの設定
左側の時計マークをクリック
👇
トリガーの設定画面が開く
👇
右下の「トリガーを追加」をクリック
- 実行する関数
- 実行する頻度
の設定をして「保存」を押します。
5.まとめ
動物の画像で癒しを……!!
他のAPIでも応用できそう。
Discussion