GoogleChatGoogleWorkspaceGoogleChatAPI

Google Chat に他メッセージプラットフォームのデータをインポートできることをご存知ですか?

はじめに

Google Chatを利用したことはありますか? Google アカウント、Google Workspaceに付随する「Google Chat」を利用されている方は多いでしょう。 実は、Google Chat API を利用すると、他のメッセージングプラットフォームからGoogle Chatにデータをインポートすることができます。 他サービスからの移行を検討している、移行時の履歴データ保持に悩んでいる私にとって、この機能はとても有効だったので紹介します。

この記事でわかること

  • Google Chat APIの「インポートモード」とは何か
  • どのようなデータ(エンティティ)をインポートできるのか
  • データインポートの基本的な流れ

1. Google Chat API の「インポートモード」とは?

データインポートを実現するために、Google Chat APIには「インポートモード」という特別なスペース(チャンネル)の概念があります。 このモードでスペースを作成することで、通常のメッセージ投稿ではなく、過去の履歴としてデータを正確にインポートできます。

インポートモードの主な特徴

  • インポート中は通常利用者から非表示になる
  • メッセージやスペースの履歴タイムスタンプを保持できる
  • インポート完了後、通常のChatスペースに切り替わる

インポートには90日間の期間制限がありますが、インポートモードを使用することで発言者や発言時間等も完全な状態で移行することができます。

2. インポートできるエンティティ(データ種別)

インポートモードのスペースでは、移行元プラットフォームの様々な要素をChatのリソースとして作成・移行できます。

具体的にインポートできる主なエンティティは以下の通りです。

  • メッセージ (Message): 過去の発言内容とそのタイムスタンプ
  • 添付ファイル (Attachment): メッセージに付随するファイルデータ
  • リアクション (Reaction): メッセージに対する絵文字でのリアクション
  • メンバーシップ (Membership): スペースに所属していたユーザー情報
  • スペース (Space): チャンネルやグループチャットそのものの情報

Google Chat には ボードや To Doリスト等の機能もありますが、 API で import することはできません。 ただし、 import 時にいくつかデータを Google Chat 用に書き換えるなどの対応は必要です。例えば...

  • メッセージ内の絵文字変換
  • メッセージ内のメンション
  • 存在しないアカウントの取り扱い( Deleted User になってしまったユーザーの発言等 )

わかり易い例だけ記載しましたが、この他にも多数存在します。

3. データインポートの簡単な流れ

  1. サービスアカウントの作成とChat APIのchat.importスコープの承認
  2. spaces.create メソッドで importMode: true のスペースを作成
  3. 移行元データを元に、メッセージ、リアクションなどを順次 create メソッドでインポート
  4. spaces.completeImport メソッドを実行し、インポートモードを解除(スペースが通常利用可能になる)

(当たり前ですが)移行元、移行先の管理者権限等必要になります。権限がない方は権限をもらってから試してみてください。

また、 API の rate limit もあるので上限に達しないよう注意しながら実行しましょう。 詳細は記事化できる余裕があればします。

さいごに

Google Chat APIのインポートモードを使えば、過去のメッセージ履歴を失わずにGoogle Chatへ移行できます。 コミュニケーション基盤移行を検討されている方は、ぜひこの機能の活用を検討してみてください。

Ref