はじめに
今回はGASを使ってスクレイピングした情報をSlackに自動的に飛ばしてもらうBotの作成をしてみます。
この実装ではスクレイピングに限らずGASとSlackの連携ができるようになるのでスプレッドシートの情報を使ったり、その他のツール作成にも役に立つかと思います!
実装開始
Slack側の手順
まずはSlackにアクセスするために必要なAPIの設定を行います。
こちらのSlack APIのページにて以下の手順通り操作してみてください。
1. Create New App(緑色のボタン)→From Scratchを選択する
2. Name app & choose workspace → プロジェクトの命名と自身が使用しているチャンネルを選択する
これでbotを動かすためのアプリケーションが作成されました。
続いてはこのアプリにアクセスできるよう認証周りの設定です。
3. OAuth & Permissionsを選択する
4.Scopesにある以下三つの権限を追加して保存する
5. 左のSettingからAppHomeを選択しYour App’s Presence in SlackにてEditボタンを押すとbotの命名ができるので適当に編集する
6. Install Appから発行されたトークンをコピーしておけば完了!!
これでSlack側の設定が終わりです!!
GAS側の手順
Slackへの通信ができるライブラリが用意されているのでそれのインストールから始めます!
1. GoogleAppScriptを開き、ライブラリタブを選択する
2. SlackAppというライブラリをインストールする
スクリプトIDに以下を入れて検索してください
1on93YOYfSmV92R5q59NpKmsyWIQD8qnoLYk-gkQBI92C58SPyA2x1-bq
あとはコードを書くだけ!
function sendMessage(url) {
const token = ''; // Slackの設定画面からコピーしたトークンを変数に入れる
const slackApp = SlackApp.create(token);
const channelId = ''; // 通知を送りたいチャンネル名を変数に入れる
const message = 'Hello World' // 通知したいメッセージを変数に入れる
slackApp.postMessage(channelId, message);
}
こんな感じで書いてあげればこの関数を呼び出した時に自身のSlackにメッセージが届きます!!
応用(?)
ここからはそれを自動、定期的に通知させるためにGASで定期実行を設定します。
画面左にある時計マークのトリガーを選択し時間手動型で関数を実行する
この画面で自分の好きなタイミングで実行するよう設定すればどんなタイミングでも勝手にこの関数が実行されるので自動かつ定期的に通知したいものが送られてくるようになります!
私はこの機能を使用して友人と話すチャンネル内に定期更新される動画サイトの最新動画をURLとして拾ってきて通知する仕組みを作りました!
スクレイピングの方法に関しては「GAS Parser」とかで調べてみるとわかりやすいと思います!
これで業務改善や仕事を楽にする試みとして使ってみてはいかがでしょうか? では!!