チャットボットをGoogleWorkspaceの内部アプリとして公開するときに戸惑ったところ

# 目的

GoogleWorkspaceを導入している会社さんは多いと思います。昨今のLLMの盛り上がりに対して弊社もチャットボットで業務効率化など様々な取り組みをしております。
[2023年10月より内部アプリという機能がGoogleWorkspaceに追加されました。](https://workspaceupdates-ja.googleblog.com/2023/10/marketplace.html)

弊社でのチャットボット作成・社内に展開する際に戸惑った点などを本記事で共有したいと思います。

# 前提条件

- サービスアカウントを利用したチャットボットアプリ(OAuth2のクライアントIDを使っていない)
- チャットアプリが利用しているスコープは[「https://www.googleapis.com/auth/chat.bot」](https://developers.google.com/chat/api/guides/auth?hl=ja#nonsensitive-scopes)である。

# ゴール

- チャットアプリを内部アプリとして公開する。
![GoogleWorkspaceMαrketPlace _内部アプリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/8543eab7-f720-d22c-f255-af6d749f05f3.png)

- GoogleWorkspace内でちゃんとおしゃべりできるようにする。
![GoogleChat_TestGPT_挨拶.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/2aeab8cc-542a-c2b8-c563-42c81238f5e1.png)


# 手順

- チャットアプリを内部アプリとして公開するにはGCP側のコンソールだけで完結します。
- GoogleWorkspace内でちゃんとおしゃべりできるようにするにはWorkspace内での設定も必要もなります。開発者と管理者が別々の場合には管理者の方に依頼しましょう。

## GCP側

GCP側で公開時に確認するところはGoogleChatAPIとGoogleWorkspaceMarketPlaceSDKの2箇所です。（GoogleChatAPI側の公開設定はなんら関係しないのですが）

### GoogleChatAPI

- GoogleChatAPI側の公開設定というのがありますがWorkspace側とはなんら連携してません。
![GoogleChat_公開設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/f238d197-eb01-b863-b304-a3c54fdd156e.png)

### GoogleWorkspaceMarketPlaceSDK

- GoogleWorkspaceMarketPlaceSDKを有効化しておいてください。
![GoogleWorkspaceMarketPlaceSDK_アプリの公開設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/5c20e128-889d-48f7-6e28-1a1b71035c90.png)

- インストールの設定についてはチャットアプリの場合には以下に限定されます。
![GoogleWorkspaceMarketPlaceSDK_インストールの設定.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/83139b8a-89af-2556-d9d2-23c9dd64cbc3.png)

- サービスアカウントを利用しつつ、スコープが[「https://www.googleapis.com/auth/chat.bot」](https://developers.google.com/chat/api/guides/auth?hl=ja#nonsensitive-scopes)なので以下のように設定しました。
![GoogleWorkspaceMarketPlaceSDK_OAuthスコープ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/523f434e-f0d1-9070-c0a3-4a4469830e4b.png)

- 無料で使えるようにします。
![GoogleWorkspaceMarketPlaceSDK_アプリの詳細.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/6929b3e6-bc8f-bed0-d0c2-85de547ba335.png)

- 他には「デベロッパー情報」「画像及び映像」「スクリーンショット」「サポートリンク」の必須項目を埋めて「公開」ボタンを押すだけです。おめでとうございます！！ここまで来ればマーケットプレイスの内部アプリとして公開されているはずです。


## GoogleWorkspace側

- 「GoogleWorkspace内でちゃんとおしゃべりできるようにする」にはWorkspace側の設定の確認・変更など必要になります。
- 管理者コンソールから「アプリ」→「GoogleWorkspace」→「Googleチャット」と辿っていき、アプリのインストールが許可されているかどうか確認します。
![GoogleWorkspace_管理者コンソール_アプリ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/ab1164d6-c618-70ea-d120-cc2921083795.png)

- 「アプリ」→「Google Workspace Marketplaceアプリ」→「設定」と辿り、インストールできるものの制限を確認します。弊社では管理者が許可リストに入れたものだけが利用可能になります。
![GoogleWorkspace_管理者コンソール_MarketPlace.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/8e900f6d-6181-2087-0c9c-89d1a5bb3be7.png)

- 許可リストに入れるアプリを探します
![GoogleWorkspace_管理者コンソール_許可リスト1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/4d5bace2-d827-4ab8-5288-48bc4298df9b.png)

- ユーザーが使えるようにしましょう
![GoogleWorkspace_管理者コンソール_許可リスト2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/37851844-eb06-62b2-418e-d869503c0305.png)

- ユーザー全体を選択してください。**ここでユーザー全体を選択しないとチャットアプリがGoogleChatのSpaceからのメッセージを受け取れなくなります。DMだけなら組織部門を限定しても大丈夫です。**
![GoogleWorkspace_管理者コンソール_許可リスト3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/73742/d6426a01-54de-beb1-1be4-d645c0bf4fe5.png)

- おめでとうございます！！ここまで設定したら、Googleチャットからアプリを検索してボットとおしゃべりできるようになります！！

# 参考ドキュメント

[GoogleChat](https://developers.google.com/chat/concepts?hl=ja)
[Chat アプリと Google Chat API リクエストの認証と認可](https://developers.google.com/chat/api/guides/auth?hl=ja)
[認証と認可について学習します。](https://developers.google.com/workspace/guides/auth-overview?hl=ja)