Tools

【Slack】OutgoingWebhookを利用して投稿を転送

投稿日:

はじめに

こんにちはsuzukiです。今回はOutgoingWebhookを使用して、Slackに投稿された内容を転送しようと思います。
発端としては、ほぼ同じ内容を複数の送信先に毎日送ることが必要があり、Slackで必要な情報だけ送信したら、各送信先のフォーマットに合わせ一括送信ということを下のですが、その際にSlackの投稿内容の取得に癖を感じたのでまとめました。

Slackの下記のアプリとGoogleAppsScriptを利用します。
・OutgoingWebhook
・IncomingWebhook

全体のイメージとしては下記の3ステップを実装します。
①OutgoingWebhookでSlackに投稿された特定のキーワードを検知する。
②検知した際GoogleAppsScriptのdoPostを呼び出す。
③doPostでIncomingWebhookを利用し、別のチャンネルに投稿をする。

OutgoingWebhook

OutgoingWebhookの追加

Slackのその他からAppを選択しましょう。

outgoingと入力しOutgoingWebhookを選択します。
スクリーンショットの設定を選択

OutgoingWebhookの設定


・チャンネル
Slackのどのチャンネルでキーワードをチェックするか
今回はtest-out-goingというチャンネルでキーワードをチェックします。

・引き金となる言葉
キーワード、この項目で設定した値で始まる行が投稿された場合にURLで設定したURLがよばれます。
キーワードは複数設定で来ますが、今回はtest-postという値を設定してます。

・URL
キーワードが検知された場合によばれます。
今回は次に設定する、GoogleAppsScriptを呼びます。

例にもありますが、URLがよばれ、下記のような値が渡されます。

token=fKeGja9t9zUOO7JNxODz8nis
team_id=T0001
team_domain=例
channel_id=C2147483705
channel_name=テスト
timestamp=1355517523.000005
user_id=U2147483697
user_name=スティーブ
text=googlebot: 身軽なツバメの対気速度はどのくらい?
trigger_word=googlebot:

IncomingWebhook

OutgoingWebhookと同様に下記の手順で設定します。

IncomingWebhookの追加

Slackのその他からAppを選択しましょう。

incomingと入力しIncomingWebhookを選択します。

IncomingWebhookの設定

InComingWebhookは大して重要な設定内容はありません。
Webhook URLの内容をコピーしてGoogleAppsScriptから呼びます。
https://hooks.slack.com/services/XXXXXXXXXX

いくつかの設定項目があるのですが、今回はGoogleAppsScriptからのリクエストで設定するため、気にしないで大丈夫です。
下側の緑色のボタンは忘れず押しましょう。

GoogleAppsScript

こちらにアクセスして新しいプロジェクトをタップします。

GoogleAppsScriptで行いたいことは下記の3点です。
・OutgoingWebhookからよばれる。doPost関数の作成。
・IncomingWebhookでSlackに投稿するコード。
・デプロイを行う。

doPost関数の作成

デフォルトでmyFunctionという関数が設定されていますが、不要なため削除します。
OutgoingWebhookからは下記の関数がよばれるため追加します。

sendSlack関数の作成

下記のコードでメッセージを送信します。doPostから渡されるeには前述しましたが、いろんな情報が含まれています。今回は送信内容だけe.parameter.textで利用してます。
またhttps://hooks.slack.com/services/XXXXXXXXXXXXXXXは前述のIncomingWebhookのWebhookURLです。

デプロイを行う

右上の青いデプロイから新しいデプロイを選択

①種類を選択をウェブアプリを選択
②次のユーザーとして実行を自分を選択
③アクセスできるユーザーを全員を選択
④デプロイを選択

③の工程は全員を選択してください。自分のみやGoogleアカウントを持つ全員とかだと動きません。

デプロイが完了するとウェブアプリのURLの発行されます。
上記をOutgoingWebhookのURLにセットして下の方にある緑色の設定を保存するボタンを押してください。

ここまで完了したら、
OutgoingWebhookで設定したチャンネルにキーワードの入力しましょう。
送信先のチャンネルにメッセージが届いていたら成功です。

さいごに

今回はGASとSlackの連携をしてみました。
些細な内容ですが、ストレスが高かったことを今回改善っできました。GASを使うの楽しかったのでまた何かやってみようと思います。

blog-page_footer_336




blog-page_footer_336




-Tools
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

【Unity】Standard Assetsでエラーが出た時の対応

1 はじめに2 Standard Assetsのエラー2.1 修正方法3 さいごに4 おすすめ書籍 はじめに こんにちは、suzukiです。本日はunityのStandard AssetsをImpor ...

Gitの便利なコマンド

1 はじめに2 cherry-pick2.1 使い方3 stash3.1 使い方3.2 退避した作業の一覧を見る3.3 退避した作業を戻す3.4 退避した作業を消す3.5 退避した作業を元に戻すと同時 ...

GCP無料枠×Theiaでいつでもコーディング

1 はじめに2 Theiaとは?3 GCPのセットアップ3.1 無料枠の利用を開始3.2 GCEインスタンスの作成3.2.1 1 f1-micro インスタンス(1 か月あたり、バージニア州北部を除く ...

aws

QuickSightを使ってみた

1 はじめに2 Quick Sightとは3 今回やろうとした事4 作業の流れ5 S3との連携5.1 S3へのアクセス許可5.2 マニフェストファイルの作成6 データセットの作成6.1 自動更新の設定 ...

Gitの初期設定と便利な設定

1 はじめに2 初期設定2.1 ユーザ情報の設定3 便りな設定4 Gitの基礎知識4.1 configは3段階4.2 現在の設定を確認する4.3 設定ファイルの保存場所5 参考6 さいごに はじめに ...

フォロー

blog-page_side_responsive

2022年11月
 12345
6789101112
13141516171819
20212223242526
27282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。