Google ChatとWorkatoを連携してみる

# はじめに
Workatoの2024年5月のアップデートで、新コネクタ「Google Chat (Webhook Based Interaction)」がリリースされました。

https://www.workato.com/product-hub/community-connectors-whats-new-in-may-2024/

**・Google Chat (Webhook Based Interaction)コネクタ**：[USDC版](https://app.workato.com/custom_adapters/543596/details?community=true) [JPDC版](https://app.jp.workato.com/custom_adapters/543596/details?community=true)


類似のものとして、既存の「Google Chat」コネクタがあるのはご存じでしょうか。
**・Google Chatコネクタ**：[USDC版](https://app.workato.com/custom_adapters/339222/details?community=true) [JPDC版](https://app.jp.workato.com/custom_adapters/339222/details?community=true)


両者の特徴をざっと整理したいと思います。
|　| コネクタ名 | 認証や技術 | 通信 | できること |
|:-:|:-:|:-|:-:|:-|
| 既存 | Google Chat | OAuth認証に対応。GCPに払い出したクライアントで認証し、構成したアプリを媒介して処理する | 双方向 | イベントを受信・メッセージを送信するなど様々 |
| 新着 | Google Chat (Webhook Based Interaction) | WebhookURLさえ分かればポストできる | 一方向 | メッセージ送信のみ |

用途によって、コネクタを使い分ければいいですね。
というわけで、実際に新着コネクタを使ってみました！

# Google Chatについて
Google Chatは、組織向けに構築されたコミュニケーションツールです。SlackやTeams等と同様に、ビジネスチャットとして利用が拡がっています。
APIが提供されているため、外部のプログラム等からAPIを実行することで、Google Chatの様々なリソースへのアクセスが可能です。

# やりたいこと
**「指定のスペースへメッセージを送信する」**

スペースというのは、プロジェクトやチームごとに区切られたコミュニケーションの場を指します。
SlackやTeamsでいうところのチャネル（チャンネル）に相当し、参加メンバーの管理や非公開設定などの設定が可能です。

# 手順
## ①コミュニティライブラリからコネクタをインストール
コネクタのページにアクセスし、「Install」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/5f2feee7-5ebc-c431-0815-a8c243e9e13a.png)

「Release connector」、「Release」の順にクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/37ad240a-be52-aebf-b8e2-a146db4f6d71.png)

コネクタがインストールされました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/95c29180-d28c-aa39-8485-f00a56d5ed36.png)


## ②connectionの作成
Create->Connectionで「chat」と入力すると、「Google Chat (Webhook Based Interaction)」が出てくるので選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/22a14c4f-8a8e-a515-45d0-f24b3d18a53f.png)

Webhook Notification URLのフィールドのヒントに、参考URLが記載されているのでクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/755479c8-837e-d0df-66ac-f20a651a3f7d.png)

リンクの遷移先はGoogle Chat公式のガイドでした。
**着信Webhook登録**のガイドに従って設定していきます。

https://developers.google.com/workspace/chat/quickstart/webhooks?hl=ja#create_a_webhook

#### ＜Google Chatでの着信Webhook登録手順＞
1\. ブラウザでGoogle Chatを開く
2\. Webhookを追加するスペースへ移動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/9550b8db-7a20-34bc-50cb-7901760e686b.png)

3\. スペースのタイトルの横にあるexpand_more をクリック->展開矢印をクリック->[アプリと統合] をクリック
4\. [addAdd webhooks] をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/60a04e46-0535-7cf1-f97b-784bd9d07a85.png)

5\. [名前]フィールドに「Quickstart Webhook」と入力
6\. [アバターのURL] フィールドに「https://developers.google.com/chat/images/chat-product-icon.png」 と入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/d89d56e1-76d3-4a85-42d7-c9a30a0c342b.png)

7\. [保存] をクリック

8\. Webhook URL をコピーするには、more_vert [その他] をクリック->[content_copyリンクをコピー] をクリック


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/2622281f-925d-e26a-0dcd-e5ee34515870.png)



さて、Workatoに戻りWebhookURLをペーストして、Connectします。
これでconnectionは完成です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/76c1f309-667d-2517-d0fb-3b79bb104fc8.png)



## ③レシピの作成
レシピを新規作成します。
アクションの**App**で「Google Chat (Webhook Based Interaction)」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/6aa5f905-1bc9-2467-1e29-3b5d53600789.png)

今回はプレーンなテキストを送信できればいいので、
**Action**で「Send a plain text message」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/fd8de08c-82d6-2221-d89d-f66f1482dc3c.png)

**Connection**を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/edb23f5f-b947-5642-2717-849cf7460864.png)

**Setup**の「Text」フィールドに適当な文言を入力します。
お気づきの通り、Textの他にもたくさんのフィールドがあります。駆使するとスレッドに返信できたりファイルを添付できたりするようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/c3b460cb-9502-1f47-2eb8-72d259125509.png)

レシピを保存します。
内容としてはとてもシンプルです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/f10694fb-9c02-be2c-7b4d-13e40803cd4b.png)


# 実行
作成したレシピを、「Test recipe」で実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3778017/65251131-d362-32b8-af90-2d89ff6c9b0a.png)

無事に、スペースへメッセージを送信できました。

# おわりに
単純にメッセージを送信するだけなら、新着コネクタのほうが使い勝手が良さそうです。