Slack の Incoming Webhookで 簡易なフィードバック管理

1.3K Views

March 07, 21

スライド概要

Serverless LT初心者向け LT大会(#8) での発表資料です。
https://serverlesslt.connpass.com/

profile-image

30代後半から発信活動を始めて人生が楽しくなりました。 主にC#/設計技法/マネジメント/チームビルディングの情報を発信します。 デブサミ2020関西ベストスピーカー賞1位。 Microsoft Build 2022 スピーカー。 ITエンジニア向けの月刊誌「Software Design」2022年4月号より連載記事を執筆中。 デンソークリエイト所属。発言は個人の見解。

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

Slack の Incoming Webhookで 簡易なフィードバック管理 2021/01/24 Serverless LT初心者向け #8 小島 優介 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. /65

2.

自己紹介 名前:小島 優介 所属:デンソークリエイト 活動実績: C#でのツール開発15年(現在はエンジニアリングマネージャー) デブサミ2020関西 ベストスピーカー賞1位 https://codezine.jp/article/detail/12919 Twitter:@kojimadev https://twitter.com/kojimadev Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 2 /65

3.

はじめに Slack の Incoming Webhook を用いて アプリに対するユーザーからの要望や不具合報告などの フィードバック管理を簡易的に実現する方法の紹介 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 3 /65

4.

アプリを公開する際、フィードバックを管理したい Webサービスであっても Android/iOSアプリであっても ユーザーからの要望や、不具合報告など ユーザーからのフィードバックを管理したいことは多い 個人開発のアプリやサービスなら なおさらユーザーからのフィードバックを元に改善したい Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 4 /65

5.

DB(Firebaseなど)にデータを登録するのは面倒 ユーザーからの要望や不具合報告登録をDBに登録する場合 登録したデータを検索したり、表示したりするために 管理機能の開発が必要(面倒) また、DBに登録されたことを通知する機能も欲しい(面倒) Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 5 /65

6.

そこで Slack の Incoming Webhook Slack の Incoming Webhook を使えば 指定したチャンネルに要望や不具合報告を投稿可能 Slackなので、検索もしやすいし、通知にもなる フリープランでも、直近10,000件まで投稿が記録できるので アプリのユーザー数が多くなるまでは、簡易的な管理として十分 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 6 /65

7.

実現方法は簡単 1. フィードバック管理用のSlackのワークスペースを作成する 2. Incoming Webhook を用いてURLを取得する (こちらのリンク先参照) 3. 上記URLを用いてSlackに投稿する機能を持つ Web API を Azure Functions などで作成する 4. 上記の Web API を Webサービスやアプリから実行する 3. についての詳細を以降で解説 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 7 /65

8.

C#でSlackに投稿(とても簡単) メンションの有無を設定 メッセージと投稿者名と チャンネル名を設定 SlackのAPIに送信できる形式に変換 Slackに投稿 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 8 /65

9.

C#でAzure Functionsを作成(とても簡単) Azureのアカウントを作成して、Visual Studioから メニューを実行するだけで Web APIを作成可能 詳細はこちらのリンク先参照 新規作成するだけで雛形となるメソッドが作成される 実装はこれを少し変更するだけで良い Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 9 /65

10.

Azure FunctionsからSlackに投稿する 実装変更は赤枠の2箇所を変更するだけ リクエストボディから パラメータ取得 Slackに投稿するメソッドを 呼び出す Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 10 /65

11.

Web APIの実行結果 Web API のリクエストボディに json形式で メッセージ、チャンネル名、メンション有無を指定して実行 #error_reportチャンネルに下図のように投稿される Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 11 /65

12.

ユーザーフィードバック管理の例 不具合報告、要望などの 用途ごとにチャンネルを分ける 不具合報告の例 問題を特定するための 情報を送信 Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 12 /65

13.

まとめ Slack の Incoming Webhook と Azure Functions を用いることで フィードバックの管理を簡単に実現できる 本発表で紹介したソースコードは以下のリポジトリで公開 https://github.com/kojimadev/SlackIncomingWebhook Developers Summit 2020 KANSAI / 2020-8-27 / Yusuke Kojima © DENSO CORPORATION All Rights Reserved. 13 /65