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


関連記事

元mac使いがUbuntuで理想の作業環境に近づけるためにやったこと

1 はじめに2 Ubuntuのインストール2.1 買ったもの2.2 インストールメディアの作成2.3 インストールメディアの起動3 キーボード・トラックパッド周りのカスタマイズ3.1 kinto.sh ...

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

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

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

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

Gitの便利なコマンド

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

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

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

フォロー

blog-page_side_responsive

2022年11月
 12345
6789101112
13141516171819
20212223242526
27282930  

アプリ情報

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