このガイドでは、
create()
メソッドを Google Chat API の Message
リソースで使用すると、次のことができます。
- テキスト、カード、インタラクティブなウィジェットを含むメッセージを送信します。
- 特定の Chat ユーザーに非公開でメッセージを送信する。
- メッセージ スレッドを開始するか、スレッドに返信します。
- 他の Chat API リクエストで指定できるように、メッセージに名前を付けます。
<ph type="x-smartling-placeholder">
メッセージの最大サイズ(テキストやカードを含む)は 32,000 バイトです。このサイズを超えるメッセージを送信するには、Chat アプリが複数のメッセージを送信する必要があります。
Chat API を呼び出してメッセージを作成するだけでなく、 Chat アプリは、ユーザーに返信するメッセージを作成して送信できる ユーザーがスペースに追加した後にウェルカム メッセージを投稿するなど、 スペースに移動します。インタラクションに応答する際、Chat アプリは、インタラクティブなダイアログやリンク プレビュー インターフェースなど、他のタイプのメッセージ機能を使用できます。ユーザーに返信するには、 Chat アプリはメッセージを同期的に返し、メッセージが送られることなく 呼び出すことができます。メッセージの送信によるインタラクションへの対応については、Google Chat アプリでインタラクションを受け取って応答するをご覧ください。
Chat API で作成されたメッセージの表示とアトリビューションの仕組み
create()
メソッドは、次のコマンドを使用して呼び出すことができます。
アプリの認証
ユーザー認証があります。
Chat によってメッセージ送信者のアトリビューションが異なる
何を使用するかを選択できます
Chat アプリとして認証すると、Chat アプリがメッセージを送信します。
ユーザーとして認証すると、Chat アプリがユーザーに代わってメッセージを送信します。また、Chat アプリの名前を表示して、メッセージに Chat アプリを関連付けます。
<ph type="x-smartling-placeholder">認証タイプによって、メッセージに含めることができるメッセージ機能とインターフェースも決まります。アプリ認証では Chat アプリは、リッチテキスト、 カードベースのインターフェース、 インタラクティブなウィジェットです Chat ユーザーはメッセージにテキストのみを送信できるため、ユーザー認証を使用してメッセージを作成する場合にのみテキストを含めることができます。Chat API で利用可能なメッセージ機能の詳細については、Google Chat メッセージの概要をご覧ください。
このガイドでは、どちらの認証タイプを使用して Chat API でメッセージを送信するかについて説明します。
前提条件
Node.js
- Google Chat へのアクセス権を持つビジネスまたはエンタープライズ向け Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する
- Google Chat API を有効にして構成し、Chat アプリの名前、アイコン、説明を指定します。
- Node.js の Cloud クライアント ライブラリをインストールします。
- Google Chat API リクエストで認証する方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
client_secrets.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat 用アプリとして認証するには、
サービス アカウントの作成
認証情報を JSON ファイルとして保存し、
credentials.json
。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- ユーザーとして認証するか、Chat アプリとして認証するかに応じて、認可スコープを選択します。
- 認証されたユーザーまたはスペースでやり取りされる Google Chat スペース 1 人です。ID プロバイダとして認証するには、 Chat 用アプリで Chat アプリをスペースに追加できます。
Python
- Google Chat へのアクセス権を持つビジネスまたはエンタープライズ向け Google Workspace アカウント。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- Python Cloud クライアント ライブラリをご覧ください。
- Google Chat API リクエストで認証する方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
client_secrets.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat 用アプリとして認証するには、
サービス アカウントの作成
認証情報を JSON ファイルとして保存し、
credentials.json
。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- <ph type="x-smartling-placeholder"></ph> ユーザーとして認証するか、ユーザーとして認証するかに基づいて、承認スコープを選択します。 Chat アプリ。
- 認証済みユーザーまたは呼び出し元の Chat アプリがメンバーである Google Chat スペース。ID プロバイダとして認証するには、 Chat 用アプリで Chat アプリをスペースに追加できます。
Java
- 企業または大企業 以下へのアクセス権を持つ Google Workspace アカウント Google Chat。
- 環境を設定します。
<ph type="x-smartling-placeholder">
- </ph>
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- Java の Cloud クライアント ライブラリをインストールします。
- Google Chat API リクエストで認証する方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
client_secrets.json
という名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat 用アプリとして認証するには、
サービス アカウントの作成
認証情報を JSON ファイルとして保存し、
credentials.json
。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- ユーザーとして認証するか、Chat アプリとして認証するかに応じて、認可スコープを選択します。
- 認証されたユーザーまたはスペースでやり取りされる Google Chat スペース 1 人です。ID プロバイダとして認証するには、 Chat 用アプリで Chat アプリをスペースに追加できます。
Apps Script
- Google Chat へのアクセス権を持つビジネスまたはエンタープライズ向け Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成します。
- Google Chat API を有効にして構成する。名前、 アプリのアイコン、説明を入力します。
- スタンドアロンの Apps Script プロジェクトを作成する [高度なチャット サービス] をオンにします。
- このガイドでは、ユーザー認証またはアプリ認証のいずれかを使用する必要があります。Chat アプリとして認証するには、サービス アカウントの認証情報を作成します。手順については、Google Chat アプリとして認証と認可を行うをご覧ください。
- <ph type="x-smartling-placeholder"></ph> ユーザーとして認証するか、ユーザーとして認証するかに基づいて、承認スコープを選択します。 Chat アプリ。
- 認証済みユーザーまたは呼び出し元の Chat アプリがメンバーである Google Chat スペース。Chat アプリとして認証するには、Chat アプリをスペースに追加します。
<ph type="x-smartling-placeholder">
Chat アプリとしてメッセージを送信する
このセクションでは、アプリ認証を使用して、テキスト、カード、インタラクティブなアクセサリ ウィジェットを含むメッセージを送信する方法について説明します。
CreateMessage()
を呼び出すには:
使用する場合は、API 呼び出しで次のフィールドを指定する必要があります。
request:
chat.bot
認可スコープ。- メッセージを投稿する
Space
リソース。Chat アプリがスペースのメンバーである必要があります。 - 作成する
Message
リソース。メッセージの内容を定義するには、 リッチテキスト (text
), 1 つ以上のカード インターフェース (cardsV2
), または両方を選択できます
必要に応じて、次の情報を含めることができます。
- 含める
accessoryWidgets
フィールド メッセージの下部にあるインタラクティブなボタン。 privateMessageViewer
フィールド: 指定したユーザーにメッセージを非公開で送信します。messageId
フィールド。他の API リクエストで使用するメッセージに名前を付けることができます。thread.threadKey
フィールドとmessageReplyOption
フィールド: スレッドを開始または返信します。スペースでスレッド処理を使用していない場合は、このフィールドは無視されます。
次のコードは、Chat アプリとして投稿されたメッセージ(テキスト、カード、メッセージの下部にあるクリック可能なボタンを含む)を Chat アプリが送信する方法の例を示しています。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、SPACE_NAME
をスペースの name
フィールドの ID に置き換えます。ID を取得するには、このメソッドを呼び出して、
ListSpaces()
スペースの URL から取得できます。
メッセージの下部にインタラクティブなウィジェットを追加する
このガイドの最初のコードサンプルでは、 Chat 用アプリのメッセージでは、画面上部にクリック可能なボタンが表示され、 これはアクセサリ ウィジェットと呼ばれます。アクセサリ ウィジェットは、メッセージ内のテキストまたはカードの後に表示されます。これらのウィジェットを使用して ユーザーがさまざまな方法でメッセージを操作できます。
- メッセージの正確性または満足度を評価してください。
- メッセージ アプリまたは Chat アプリに関する問題を報告する。
- ドキュメントなどの関連コンテンツへのリンクを開く。
- チャットアプリから類似のメッセージを特定の期間閉じるか、スヌーズする。
アクセサリ ウィジェットを追加するには、
accessoryWidgets[]
フィールドをフィールドに追加して、リクエストするウィジェットを 1 つ以上
追加できます
次の画像は、アクセサリ ウィジェットをテキスト メッセージに追加して、ユーザーが Chat アプリの使用感を評価できるようにした Chat アプリを示しています。
<ph type="x-smartling-placeholder">次の例は、2 つのアクセサリ ボタンを含むテキスト メッセージを作成するリクエストの本文を示しています。ユーザーがボタンをクリックすると、対応する関数(doUpvote
など)が操作を処理します。
{
text: "Rate your experience with this Chat app.",
accessoryWidgets: [{ buttonList: { buttons: [{
icon: { material_icon: {
name: "thumb_up"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doUpvote"
}}
}, {
icon: { material_icon: {
name: "thumb_down"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doDownvote"
}}
}]}}]
}
メッセージを非公開で送信する
Chat アプリは非公開でメッセージを送信できるため、 メッセージはスペース内の特定のユーザーのみに表示されます。チャットアプリが非公開メッセージを送信すると、そのメッセージには、そのメッセージが自分だけに表示されることを伝えるラベルが表示されます。
Chat API を使用してメッセージを非公開で送信するには、
privateMessageViewer
必ず指定してください。ユーザーを指定するには、値を
User
ユーザーを表すリソースです。次の例に示すように、User
リソースの name
フィールドを使用することもできます。
{
text: "Hello private world!",
privateMessageViewer: {
name: "users/USER_ID"
}
}
このサンプルを使用するには、USER_ID
をユーザーの一意の ID(12345678987654321
や hao@cymbalgroup.com
など)に置き換えます。ユーザーの指定の詳細については、Google Chat ユーザーを特定して指定するをご覧ください。
メッセージを非公開で送信するには、リクエストで次の項目を省略する必要があります。
ユーザーの代わりにテキスト メッセージを送信する
このセクションでは、ユーザー認証を使用してユーザーに代わってメッセージを送信する方法について説明します。ユーザー認証を使用すると、メッセージのコンテンツにテキストしか メッセージ機能は、Google Chat でのみ利用できる カード インターフェースやインタラクティブなウィジェットなどのチャットアプリ。
ユーザー認証を使用して CreateMessage()
メソッドを呼び出すには、リクエストで次のフィールドを指定する必要があります。
- 認可スコープ
サポートしています。次のサンプルでは、
chat.messages.create
スコープを使用します。 - メッセージを投稿する
Space
リソース。認証されたユーザーは、スペースのメンバーである必要があります。 - 作成する
Message
リソース。メッセージの内容を定義するには、text
フィールドを含める必要があります。
必要に応じて、次の情報を含めることができます。
messageId
フィールド。これにより、 他の API リクエストで使用するメッセージに名前を付けます。thread.threadKey
フィールドとmessageReplyOption
フィールド: スレッドを開始または返信します。スペースでスレッド処理を使用していない場合は、このフィールドは無視されます。
次のコードは、Chat 用アプリが は、認証されたユーザーの代わりに、特定のスペースでテキスト メッセージを送信できます。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、SPACE_NAME
を
スペースの
name
表示されます。ID を取得するには、このメソッドを呼び出して、
ListSpaces()
スペースの URL から取得できます。
スレッドを開始または返信する
スレッドを使用するスペースの場合: 新しいメッセージがスレッドを開始するか、新しいメッセージが 削除することもできます。
デフォルトでは、Chat API を使用して作成したメッセージからは、 使用します。スレッドを特定して後で返信できるように、リクエストでスレッドキーを指定できます。
- リクエストの本文で
thread.threadKey
フィールドを指定します。 - クエリ パラメータ
messageReplyOption
を指定して、キーがすでに存在する場合の動作を決定します。
既存のスレッドに返信するメッセージを作成するには:
- リクエストの本文に、
thread
フィールドを含めます。設定すると、 「threadKey
作成します。それ以外の場合は、スレッドのname
を使用する必要があります。 - クエリ パラメータ
messageReplyOption
を指定します。
次のコードは、チャットアプリが認証済みユーザーに代わって、特定のスペースのキーで識別される特定のスレッドを開始または返信するテキスト メッセージを送信する方法の例を示しています。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、次のように置き換えます。
THREAD_KEY
: スペース内の既存のスレッドキー。または、新しいスレッドを作成する場合は、スレッドの一意の名前。SPACE_NAME
: スペースの IDname
表示されます。ID を取得するには、このメソッドを呼び出して、ListSpaces()
スペースの URL から取得できます。
メッセージに名前を付ける
今後の API 呼び出しでメッセージを取得または指定するには、メッセージに
リクエストの messageId
フィールドを設定します。
メッセージに名前を付けることで、
メッセージのリソース名から自動的に割り当てられた ID(
name
フィールド)。
たとえば、get()
メソッドを使用してメッセージを取得するには、
して、取得するメッセージを指定します。リソース名の形式は spaces/{space}/messages/{message}
です。ここで、{message}
は、システムが割り当てた ID またはメッセージを作成したときに設定したカスタム名を表します。
メッセージに名前を付けるには、カスタム ID を
messageId
指定する必要があります。messageId
フィールドは、次の値を設定します。
clientAssignedMessageId
Message
リソースのフィールド。
メッセージに名前を付けることができるのは、メッセージの作成時のみです。名前やメールアドレスを 既存のメッセージのカスタム ID を変更できます。カスタム ID は次の要件を満たしている必要があります。
client-
で始まります。たとえば、client-custom-name
は有効なカスタム ID と一致しますが、custom-name
は一致しません。- 63 文字以下で、小文字、数字、ハイフンのみを使用できます。
- スペース内で一意である。Chat アプリでは、 同じカスタム ID を使用する必要があります。
次のコードは、Chat 用アプリが スペースに代理で ID を含むテキスト メッセージを送信できます。 認証されたユーザー:
Node.js
Python
Java
Apps Script
このサンプルを実行するには、次のように置き換えます。
SPACE_NAME
: スペースのname
フィールドの ID。ID を取得するには、このメソッドを呼び出して、ListSpaces()
スペースの URL から取得できます。MESSAGE-ID
: 先頭のメッセージの名前custom-
に置き換えます。指定したスペースで Chat アプリによって作成された他のメッセージ名とは一意である必要があります。
トラブルシューティング
Google Chat アプリまたはカードからエラーが返されると、Chat インターフェースに「エラーが発生しました」というメッセージが表示されます。または「リクエストを処理できません」というメッセージが表示されます。Chat UI にエラー メッセージが表示されない場合でも、Chat アプリまたはカードで予期しない結果が生成されることがあります(カード メッセージが表示されないなど)。
チャット UI にエラー メッセージが表示されない場合でも、チャットアプリのエラー ロギングがオンになっている場合は、エラーの修正に役立つ説明的なエラー メッセージとログデータが利用できます。エラーの表示、デバッグ、修正については、Google Chat エラーのトラブルシューティングと修正をご覧ください。
関連トピック
- カードビルダーを使用すると、Chat アプリ用の JSON カード メッセージを設計してプレビューできます。
- メッセージの書式を設定する。
- メッセージの詳細を取得する。
- スペース内のメッセージを一覧表示する。
- メッセージを更新する。
- メールを削除する。
- Google Chat のメッセージでユーザーを特定する。
- 着信 Webhook を使用して Google Chat にメッセージを送信する。