それぞれのエコシステムでの存在感
Google ChatはGoogleアカウントを中心としたエコシステムが非常に強力で、決して無視できる存在ではありません。Google Workspaceを社内全体で導入している会社も多く、何かしらのチャットツール連携を行う場合には、対応が求められるツールの一つでしょう。同様にMicrosoft Teamsも、Microsoftがどんどんとクラウドに力を入れている背景もあり、利用者数を増やしています。
こうした周辺サービスがある会社のサービスは拡がり始めると一気に拡がるため、いつまでも昔のイメージを持っていると危険です。利用者数が多くなると必然的に連携を求める声があがってきますので、早め早めの対応が必要ではないでしょうか。大手のサービスの普及力は、やはり侮れません。
今回はこのGoogle ChatやMicrosoft Teamsに対して通知を行う機能開発について考えてみたいと思います。どういったポイントに注意すべきか、いくつかの軸で整理してみましょう。
Point.1 Google Chatの着信WebhookURL
Google Chatに限った話ではありませんが、GoogleのAPIは非常に多数のものが用意されています。メッセージを投稿できればそれで十分だというケースでは、Incoming Webhookの機能を活用するのが最も手軽な実装になるでしょう。
顧客側でGoogle Chatの着信WebhookURLを設定してもらい、それをシステム側に設定するだけで内容の投稿が可能になります。メッセージであればかなりリッチに装飾できるため、要件に応じた装飾が行いやすいメリットがあります。ただ、ファイルアップロードは別のAPIでしか行えないため、ファイル送信が必須である場合にはIncoming Webhookは使えません。
Point.2 Microsoft TeamsのIncoming Webhook URL
Microsoft Teamsにも同様のIncoming Webhook機能が用意されています。設定のためのフローはGoogle Chatとは異なるものの、ヘルプページを用意すれば顧客側での作業にそこまで困ることはないでしょう。設定後に発行されるURLさえ教えてもらえれば、システム側から指定のチームにメッセージを投稿することができます。こちらもGoogle Chat同様、ファイル送信は行なえません。
Point.3 ファイル送信ができないことへの対応
Google Chat、Microsoft Teamsどちらも、Incoming Webhookを使う限りはファイル送信を行うことはできません。別のAPIを使って実装すればファイル送信を行えますが、それ以外の方法でこのデメリットを回避することもできます。
例えば、実体ファイルをシステム側で保持しているのであれば、Google ChatやMicrosoft Teams側に投稿するのはURLリンクだけにし、ファイルの参照はシステム側で受けてしまうという方法がシンプルです。ファイルは十分にセキュアな方法で閲覧できるようにすべきですが、その部分さえ担保できているのであれば、投稿するメッセージにリンクを付記すればよいだけなので、大きな機能開発も不要になります。参照操作も、メッセージ内のURLをクリックするだけなので、利用者側の負担も小さくすることができます。
持続可能な技術選定を
チャットツールへの対応は長い戦いです。チャットツールの数だけ構築、メンテナンスが必要なのはもちろん、チャットツール側で大きなバージョン変更があった際には大きな工数が発生してしまいます。できる限り簡便な方法を模索し、持続可能な運用体制を構築することをおすすめします。