ユーザーが Google Chat でリンクを共有する際にコンテキストの切り替えが発生しないように、Chat アプリは、メッセージにカードを添付してリンクを プレビューできます。カードには詳細情報が表示され、ユーザーは Google Chat から直接アクションを実行できます。
たとえば、ある Google Chat スペースに、会社のすべてのカスタマー サービス エージェントと Case-y という名前の Chat アプリが含まれているとします。エージェントは Chat スペースでカスタマー サービス案件へのリンクを頻繁に共有しますが、同僚は案件のリンクを開いて、担当者、ステータス、件名などの詳細を確認する必要があります。同様に、案件の所有権を取得したり、ステータスを変更したりする場合も、リンクを開く必要があります。
リンクのプレビューを使用すると、スペースの常駐 Chat アプリである Case-y は、誰かが案件のリンクを共有するたびに、割り当て先、ステータス、件名を示すカードを添付できます。カードのボタンを使用すると、エージェントはチャット ストリームから直接案件の所有権を取得し、ステータスを変更できます。
リンクのプレビューの仕組み
ユーザーがメッセージにリンクを追加すると、Chat アプリがリンクをプレビューする可能性があることを示すチップが表示されます。

メッセージを送信すると、リンクが Chat アプリに送信され、アプリがカードを生成してユーザーのメッセージに添付します。

カードには、リンクとともに、ボタンなどのインタラクティブな要素を含むリンクに関する追加情報が表示されます。Chat アプリは、ボタンのクリックなどのユーザー操作に応じて、添付されたカードを更新できます。
Chat アプリがメッセージにカードを添付してリンクをプレビューしないようにするには、プレビュー チップの をクリックしてプレビューを無効にできます。添付されたカードは、[プレビューを削除] をクリックしていつでも削除できます。
前提条件
HTTP
Google Chat を拡張する Google Workspace アドオン。作成するには、 HTTP クイックスタートを完了します。
Apps Script
Google Chat を拡張する Google Workspace アドオン。作成するには、 Apps Script クイックスタートを完了します。
リンクのプレビューを構成する
特定のリンク(example.com、support.example.com、
support.example.com/cases/など)を、Google Cloud コンソールの Chat アプリの構成ページで URL パターンとして登録すると、Chat アプリでプレビューできるようになります。

- Google Cloud コンソールを開きます。
- [Google Cloud] の横にある下矢印 をクリックして、Chat アプリのプロジェクトを開きます。
- 検索フィールドに「
Google Chat API」と入力し、[Google Chat API] をクリックします。 - [管理 > 構成] をクリックします。
- [リンクのプレビュー] で、URL パターンを追加または編集します。
- 新しい URL パターンのリンク プレビューを構成するには、[URL パターンを追加] をクリックします。
- 既存の URL パターンの構成を編集するには、下矢印 をクリックします。
[ホストパターン] フィールドに、URL パターンのドメインを入力します。Chat アプリは、このドメインへのリンクをプレビューします。
Chat アプリで特定のサブドメイン(
subdomain.example.comなど)のリンクをプレビューするには、サブドメインを含めます。Chat アプリでドメイン全体のリンクをプレビューするには、サブドメインとしてアスタリスク(*)のワイルドカード文字を指定します。 たとえば、
*.example.comはsubdomain.example.comとany.number.of.subdomains.example.comに一致します。[パスの接頭辞] フィールドに、ホストパターン ドメインに追加するパスを入力します。
ホストパターン ドメイン内のすべての URL に一致させるには、[パスの接頭辞] を空白のままにします。
たとえば、ホストパターンが
support.example.comの場合、support.example.com/cases/でホストされている案件の URL に一致させるには、「cases/」と入力します。[完了] をクリックします。
[保存] をクリックします。
これで、Chat アプリを含む Chat スペースのメッセージに、リンク プレビューの URL パターンに一致するリンクが含まれている場合、アプリがリンクをプレビューします。
リンクをプレビューする
特定のリンクのリンク プレビューを構成すると、Chat アプリはリンクを認識し、詳細情報を添付してプレビューできます。
Chat アプリを含む Chat スペース内で、メッセージにリンク プレビューの URL パターンに一致するリンクが含まれている場合、Chat アプリは イベント オブジェクト を含むMessagePayload を受け取ります。ペイロードの
message.matchedUrl
オブジェクトには、ユーザーがメッセージに含めたリンクが含まれています。
JSON
message: {
matchedUrl: {
url: "https://support.example.com/cases/case123"
},
... // other message attributes redacted
}
MESSAGE イベント ペイロードに matchedUrl フィールドが存在するかどうかを確認することで、Chat
アプリはプレビューされたリンクを含むメッセージに情報を追加できます。Chat アプリは、基本的なテキスト
メッセージで返信するか、カードを添付できます。
テキスト メッセージで返信する
基本的なレスポンスの場合、Chat アプリはリンクにテキスト メッセージで返信することでリンクをプレビューできます。この例では、リンク プレビューの URL パターンに一致するリンク URL を繰り返すメッセージを添付します。
Node.js
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Python
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Java
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Apps Script
リンクをプレビューするカードを添付する
プレビューされたリンクにカードを添付するには、
タイプ UpdateInlinePreviewAction の ChatDataActionMarkup オブジェクトを使用してアクション DataActions を返します。
次の例では、Chat アプリが URL パターン support.example.com を含むメッセージにプレビュー
カードを追加します。

Node.js
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Python
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Java
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Apps Script
リンク プレビュー カードを更新する
Chat アプリは、ユーザーがリンク プレビュー カードを操作したとき(カードのボタンをクリックしたときなど)に、リンク プレビュー カードを更新できます。
カードを更新するには、Chat アプリ
は次のいずれかの ChatDataActionMarkup オブジェクトを使用してアクション DataActions を返す必要があります。
- ユーザーがメッセージを送信した場合は、
UpdateMessageActionオブジェクトを返します。 - Chat アプリがメッセージを送信した場合は、
UpdateInlinePreviewActionオブジェクトを返します。
メッセージを送信したユーザーを特定するには、イベント ペイロード
(buttonClickedPayload)
を使用して、送信者(message.sender.type)が HUMAN(ユーザー)または
BOT(Chat アプリ)に設定されているかどうかを確認します。
次の例では、ユーザーが [自分に割り当てる] ボタンをクリックするたびに、Chat アプリがカードの [担当者] フィールドを更新してボタンを無効にすることで、リンク プレビューを更新します。

Node.js
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Python
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Java
FUNCTION_URL は、ボタンクリックを処理する HTTP エンドポイントに置き換えます。
Apps Script
制限事項と考慮事項
Chat アプリのリンク プレビューを構成する際は、次の制限事項と考慮事項に注意してください。
- 各 Chat アプリは、最大 5 つの URL パターンのリンク プレビューをサポートしています。
- Chat アプリは、メッセージごとに 1 つのリンクをプレビューします。1 つのメッセージに複数のプレビュー可能なリンクがある場合は、最初のプレビュー可能なリンクのみがプレビューされます。
- Chat アプリは
https://で始まるリンクのみをプレビューします。したがって、https://support.example.com/cases/はプレビューされますが、support.example.com/cases/はプレビューされません。 - メッセージに、スラッシュ コマンドなど、Chat アプリに送信される他の情報が含まれていない限り、リンク プレビューによって Chat アプリに送信されるのはリンク URL のみです。
- ユーザーがリンクを投稿した場合、Chat アプリは、ユーザーがカードを操作したとき(ボタンをクリックしたときなど)にのみ、リンク プレビュー カードを更新できます。Chat API の
update()メソッドをMessageリソースで呼び出して、ユーザーのメッセージを非同期で更新することはできません。 - Chat アプリは、スペース内のすべてのユーザーのリンクをプレビューする必要があるため、メッセージに
privateMessageViewerフィールドを含めることはできません。
リンク プレビューをデバッグする
リンク プレビューを実装する際に、アプリのログを読み取って Chat アプリをデバッグする必要が生じることがあります。ログを読み取るには、 Google Cloud コンソールのログ エクスプローラにアクセスします。