このガイドでは、Google Chat API の Message リソースで create() メソッドを使用して、次のいずれかを行う方法について説明します。
- テキスト、カード、インタラクティブ ウィジェットを含むメッセージを送信する。
- 特定の Chat ユーザーに非公開でメッセージを送信します。
- メッセージ スレッドを開始または返信する。
- メッセージに名前を付けて、他の Chat API リクエストで指定できるようにします。
メッセージの最大サイズ(テキストやカードを含む)は 32,000 バイトです。このサイズを超えるメッセージを送信するには、Chat 用アプリで複数のメッセージを送信する必要があります。
Chat 用アプリは、Chat API を呼び出してメッセージを作成するだけでなく、ユーザー インタラクションに返信するメッセージを作成して送信することもできます。たとえば、ユーザーが Chat 用アプリをスペースに追加した後にウェルカム メッセージを投稿できます。インタラクションに応答する際、Chat 用アプリは、インタラクティブなダイアログやリンク プレビュー インターフェースなど、他のタイプのメッセージ機能を使用できます。ユーザーに返信するには、Chat アプリは Chat API を呼び出さずに、メッセージを同期的に返します。インタラクションに応答するメッセージの送信については、Google Chat アプリとのインタラクションを受信して応答するをご覧ください。
Chat API で作成されたメッセージの表示と帰属
create() メソッドは、アプリ認証とユーザー認証を使用して呼び出すことができます。Chat では、使用する認証タイプに応じてメッセージ送信者の属性が異なります。
Chat 用アプリとして認証すると、Chat 用アプリがメッセージを送信します。
App が表示されます。ユーザーとして認証すると、Chat 用アプリはユーザーに代わってメッセージを送信します。また、Chat は Chat アプリの名前を表示して、Chat アプリをメッセージに関連付けます。
認証タイプによって、メッセージに含めることができるメッセージ機能とインターフェースも決まります。アプリ認証を使用すると、Chat 用アプリは、リッチテキスト、カードベースのインターフェース、インタラクティブなウィジェットを含むメッセージを送信できます。ユーザー認証を使用すると、インタラクティブ カードを作成、更新するで説明されているように、テキスト メッセージを送信したり、カードを含むメッセージを作成したりできます。
Chat API で利用できるメッセージ機能の詳細については、Google Chat メッセージの概要をご覧ください。
このガイドでは、いずれかの認証タイプを使用して Chat API でメッセージを送信する方法について説明します。
前提条件
Node.js
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat アプリの名前、アイコン、説明を指定して、Google Chat API を有効にして構成します。
- Node.js Cloud クライアント ライブラリをインストールします。
- Google Chat API リクエストでの認証方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat アプリとして認証するには、サービス アカウントの認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとして保存します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- ユーザーとして認証するか、Chat 用アプリとして認証するかに基づいて、 認可スコープを選択します。
- 認証済みユーザーまたは呼び出し元の Chat 用アプリがメンバーである Google Chat スペース。Chat 用アプリとして認証するには、Chat 用アプリをスペースに追加します。
Python
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat アプリの名前、アイコン、説明を指定して、Google Chat API を有効にして構成します。
- Python Cloud クライアント ライブラリをインストールします。
- Google Chat API リクエストでの認証方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat アプリとして認証するには、サービス アカウントの認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとして保存します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- ユーザーとして認証するか、Chat 用アプリとして認証するかに基づいて、 認可スコープを選択します。
- 認証済みユーザーまたは呼び出し元の Chat 用アプリがメンバーである Google Chat スペース。Chat 用アプリとして認証するには、Chat 用アプリをスペースに追加します。
Java
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat アプリの名前、アイコン、説明を指定して、Google Chat API を有効にして構成します。
- Java Cloud クライアント ライブラリをインストールします。
- Google Chat API リクエストでの認証方法に基づいて、アクセス認証情報を作成します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとしてローカル ディレクトリに保存します。 - Chat アプリとして認証するには、サービス アカウントの認証情報を作成し、認証情報を
credentials.jsonという名前の JSON ファイルとして保存します。
- Chat ユーザーとして認証するには、OAuth クライアント ID 認証情報を作成し、認証情報を
- ユーザーとして認証するか、Chat 用アプリとして認証するかに基づいて、 認可スコープを選択します。
- 認証済みユーザーまたは呼び出し元の Chat 用アプリがメンバーである Google Chat スペース。Chat 用アプリとして認証するには、Chat 用アプリをスペースに追加します。
Apps Script
- Google Chat へのアクセス権を持つ Business または Enterprise の Google Workspace アカウント。
- 環境を設定します。
- Google Cloud プロジェクトを作成します。
- OAuth 同意画面を構成する。
- Chat アプリの名前、アイコン、説明を指定して、Google Chat API を有効にして構成します。
- スタンドアロンの Apps Script プロジェクトを作成し、Chat の拡張サービスを有効にします。
- このガイドでは、ユーザー認証またはアプリ認証を使用する必要があります。Chat 用アプリとして認証するには、サービス アカウントの認証情報を作成します。手順については、Google Chat アプリとして認証と認可を行うをご覧ください。
- ユーザーとして認証するか、Chat 用アプリとして認証するかに基づいて、 認可スコープを選択します。
- 認証済みユーザーまたは呼び出し元の Chat 用アプリがメンバーである Google Chat スペース。Chat 用アプリとして認証するには、Chat 用アプリをスペースに追加します。
Chat 用アプリとしてメッセージを送信する
このセクションでは、アプリ認証を使用して、テキスト、カード、インタラクティブなアクセサリー ウィジェットを含むメッセージを送信する方法について説明します。
アプリ認証を使用して CreateMessage() メソッドを呼び出すには、リクエストで次のフィールドを指定する必要があります。
chat.bot認可スコープ。- メッセージを投稿する
Spaceリソース。Chat 用アプリはスペースのメンバーである必要があります。 - 作成する
Messageリソース。メッセージの内容を定義するには、リッチテキスト(text)、1 つ以上のカード インターフェース(cardsV2)、またはその両方を含めることができます。
必要に応じて、次の項目を含めることができます。
elementsフィールド。メッセージに引用を追加します。accessoryWidgetsフィールド。メッセージの下部にインタラクティブ ボタンを追加します。- 指定したユーザーに非公開でメッセージを送信するための
privateMessageViewerフィールド。 messageIdフィールド。他の API リクエストで使用するメッセージに名前を付けることができます。thread.threadKeyフィールドとmessageReplyOptionフィールド。スレッドを開始または返信します。スペースでスレッドが使用されていない場合、このフィールドは無視されます。
次のコードは、Chat 用アプリが、テキスト、カード、クリック可能なボタンを含むメッセージを Chat 用アプリとして送信する方法の例を示しています。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、SPACE_NAME をスペースの name フィールドの ID に置き換えます。ID を取得するには、ListSpaces() メソッドを呼び出すか、スペースの URL から取得します。
メッセージの下部にインタラクティブ ウィジェットを追加する
このガイドの最初のコードサンプルでは、Chat アプリのメッセージの下部にクリック可能なボタン(アクセサリー ウィジェット)が表示されます。アクセサリー ウィジェットは、メッセージ内のテキストまたはカードの後に表示されます。これらのウィジェットを使用すると、次のようなさまざまな方法でユーザーにメッセージの操作を促すことができます。
- メッセージの正確性や満足度を評価する。
- メッセージまたは Chat 用アプリに関する問題を報告します。
- ドキュメントなどの関連コンテンツへのリンクを開きます。
- Chat アプリからの同様のメッセージを特定の期間、閉じたりスヌーズしたりします。
アクセサリー ウィジェットを追加するには、リクエストの本文に accessoryWidgets[] フィールドを含め、追加するウィジェットを 1 つ以上指定します。
次の画像は、ユーザーが Chat 用アプリの使用感を評価できるように、アクセサリー ウィジェットを含むテキスト メッセージを追加する Chat 用アプリを示しています。
次の例は、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 用アプリが非公開メッセージを送信すると、メッセージには、メッセージが自分にのみ表示されることをユーザーに通知するラベルが表示されます。
Chat API を使用して非公開でメッセージを送信するには、リクエストの本文で privateMessageViewer フィールドを指定します。ユーザーを指定するには、Chat ユーザーを表す User リソースに値を設定します。次の例に示すように、User リソースの name フィールドを使用することもできます。
{
text: "Hello private world!",
privateMessageViewer: {
name: "users/USER_ID"
}
}
このサンプルを使用するには、USER_ID をユーザーの一意の ID(12345678987654321 や hao@cymbalgroup.com など)に置き換えます。ユーザーの指定の詳細については、Google Chat ユーザーを特定して指定するをご覧ください。
メッセージを非公開で送信するには、リクエストで次の項目を省略する必要があります。
強制通知またはサイレント メッセージを送信する
Chat アプリがメッセージを送信するときに、次のいずれかのオプションを使用してユーザーに通知できます。
- 通知を強制する: Chat は、通知設定やサイレント モード(DND)のステータスに関係なく、常に受信者にプッシュ通知を送信します。Chat 内では、メッセージによって受信者の名簿またはホームリストが太字で表示され、バンプ動作がトリガーされ、バッジが表示されます。
- サイレント メッセージを送信する: Chat で受信者へのプッシュ通知が抑制されます。Chat 内では、このメッセージによって受信者の名簿やホームリストで太字表示やバンプ動作がトリガーされることはなく、バッジも表示されません。サイレント メッセージが会話の最後のメッセージである場合、その内容はホーム スニペットに表示されません。
強制かサイレントかにかかわらず、これらのメッセージには、特別な通知動作を受信者に通知する視覚的なインジケーターが含まれています。
強制通知とサイレント メッセージは、アプリ認証を使用する Chat 用アプリでのみ使用できます。
強制通知とサイレント メッセージには、次の制限があります。
- 外部ユーザー: 強制通知とサイレント メッセージは、スペース内の外部ユーザー(ゲスト)には適用されません。外部ユーザーは、各自の設定に従って通知を受け取ります。
- メンション: サイレント メッセージはユーザーへのメンションをサポートしていません。サイレント メッセージにメンションを含めると、書式なしテキストとして扱われます。
- スレッド: サイレント メッセージでスレッドを開始したり、スレッドに返信したりすることはできません。
- スペースの種類: 強制通知とサイレント メッセージは、ダイレクト メッセージ(DM)や、Google Workspace アカウントを持たないユーザーが所有するスペースではサポートされていません。
- メール通知: サイレント メッセージではメール通知はトリガーされません。強制通知メッセージは、特定のユーザーへのメンションが含まれている場合にのみメール通知をトリガーします。
通知を強制的に送信するか、サイレント メッセージを送信するには、リクエストに createMessageNotificationOptions フィールドを含め、notificationType を次のいずれかに設定します。
| 値 | 動作 |
|---|---|
NOTIFICATION_TYPE_FORCE_NOTIFY |
通知を強制します。 |
NOTIFICATION_TYPE_SILENT |
メッセージをサイレントで送信します。 |
次の例は、強制通知を含むメッセージを送信するリクエストの JSON 本文を示しています。
{
"text": "Critical update: the server is down!",
"createMessageNotificationOptions": {
"notificationType": "NOTIFICATION_TYPE_FORCE_NOTIFY"
}
}
ユーザーに代わってテキスト メッセージを送信する
このセクションでは、ユーザー認証を使用してユーザーに代わってメッセージを送信する方法について説明します。ユーザー認証を使用すると、ユーザーに代わってテキスト メッセージを送信したり、カードを含むメッセージを作成したりできます。ユーザーに代わってカードを送信する方法については、インタラクティブ カードを作成、更新するをご覧ください。
ユーザー認証を使用して CreateMessage() メソッドを呼び出すには、リクエストで次のフィールドを指定する必要があります。
- このメソッドのユーザー認証をサポートする認可スコープ。次のサンプルでは、
chat.messages.createスコープを使用しています。 - メッセージを投稿する
Spaceリソース。認証されたユーザーは、スペースのメンバーである必要があります。 - 作成する
Messageリソース。メッセージの内容を定義するには、textフィールドを含める必要があります。
必要に応じて、次の項目を含めることができます。
createMessageNotificationOptionsフィールド。通知を強制的に表示するか、メッセージをサイレントで送信するかを指定します。messageIdフィールド。他の API リクエストで使用するメッセージに名前を付けることができます。thread.threadKeyフィールドとmessageReplyOptionフィールド。スレッドを開始または返信するために使用します。スペースでスレッドが使用されていない場合、このフィールドは無視されます。
次のコードは、Chat 用アプリが認証済みユーザーに代わって特定のスペースでテキスト メッセージを送信する方法の例を示しています。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、SPACE_NAME をスペースの name フィールドの ID に置き換えます。ID を取得するには、ListSpaces() メソッドを呼び出すか、スペースの URL から取得します。
スレッドを開始する、スレッドで返信する
スレッドを使用するスペースの場合、新しいメッセージでスレッドを開始するか、既存のスレッドに返信するかを指定できます。
デフォルトでは、Chat API を使用して作成したメッセージは新しいスレッドを開始します。後でスレッドを識別して返信できるように、リクエストでスレッドキーを指定できます。
- リクエストの本文で、
thread.threadKeyフィールドを指定します。 - クエリ パラメータ
messageReplyOptionを指定して、キーがすでに存在する場合の動作を決定します。
既存のスレッドに返信するメッセージを作成するには:
- リクエストの本文に
threadフィールドを含めます。設定されている場合は、作成したthreadKeyを指定できます。それ以外の場合は、スレッドのnameを使用する必要があります。 - クエリ パラメータ
messageReplyOptionを指定します。
次のコードは、Chat 用アプリが認証済みユーザーに代わって、特定のスペースのキーで識別される特定のスレッドを開始または返信するテキスト メッセージを送信する方法の例を示しています。
Node.js
Python
Java
Apps Script
このサンプルを実行するには、次のように置き換えます。
THREAD_KEY: スペース内の既存のスレッドキー。新しいスレッドを作成する場合は、スレッドの一意の名前。SPACE_NAME: スペースのnameフィールドの ID。ID を取得するには、ListSpaces()メソッドを呼び出すか、スペースの URL から取得します。
メッセージに名前を付ける
今後の API 呼び出しでメッセージを取得または指定するには、リクエストで messageId フィールドを設定してメッセージに名前を付けます。メッセージに名前を付けると、メッセージのリソース名(name フィールドに表示される)からシステム割り当て ID を保存することなく、メッセージを指定できます。
たとえば、get() メソッドを使用してメッセージを取得するには、リソース名を使用して取得するメッセージを指定します。リソース名は spaces/{space}/messages/{message} の形式です。ここで、{message} は、システム割り当て ID またはメッセージの作成時に設定したカスタム名を表します。
メッセージに名前を付けるには、メッセージの作成時に messageId フィールドにカスタム ID を指定します。messageId フィールドは、Message リソースの clientAssignedMessageId フィールドの値を設定します。
メッセージに名前を付けることができるのは、メッセージの作成時のみです。既存のメッセージのカスタム 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 用アプリによって作成された他のメッセージ名と重複していない必要があります。
メッセージを引用する
別のメッセージを引用するには、CreateMessage()(rpc、rest)を呼び出し、リクエストで quotedMessageMetadata(rpc、rest)を設定します。
スレッド内またはメインチャット内のメッセージを引用することはできますが、別のスレッドのメッセージを引用することはできません。
次のコードは、別のメッセージを引用するメッセージを作成する方法を示しています。
Node.js
import {createClientWithUserCredentials} from './authentication-utils.js';
const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.messages.create'];
// This sample shows how to create a message that quotes another message.
async function main() {
// Create a client
const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);
// Initialize request argument(s)
const request = {
// TODO(developer): Replace SPACE_NAME .
parent: 'spaces/SPACE_NAME',
message: {
text: 'I am responding to a quoted message!',
// quotedMessageMetadata lets Chat apps respond to a message by quoting it.
quotedMessageMetadata: {
// TODO(developer): Replace QUOTED_MESSAGE_NAME
// and QUOTED_MESSAGE_LAST_UPDATE_TIME.
name: 'QUOTED_MESSAGE_NAME',
lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME'
}
}
};
// Make the request
const response = await chatClient.createMessage(request);
// Handle the response
console.log(response);
}
main().catch(console.error);
Python
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat
from google.protobuf.timestamp_pb2 import Timestamp
SCOPES = ['https://www.googleapis.com/auth/chat.messages.create']
# This sample shows how to create a message that quotes another message.
def create_message_quote_message():
'''Creates a message that quotes another message.'''
# Create a client
client = create_client_with_user_credentials(SCOPES)
# Create a timestamp from the RFC-3339 string.
# TODO(developer): Replace QUOTED_MESSAGE_LAST_UPDATE_TIME.
last_update_time = Timestamp()
last_update_time.FromJsonString('QUOTED_MESSAGE_LAST_UPDATE_TIME')
# Initialize request argument(s)
request = google_chat.CreateMessageRequest(
# TODO(developer): Replace SPACE_NAME.
parent='spaces/SPACE_NAME',
# Create the message.
message = google_chat.Message(
text='I am responding to a quoted message!',
# quotedMessageMetadata lets Chat apps respond to a message by quoting it.
quoted_message_metadata=google_chat.QuotedMessageMetadata(
name='QUOTED_MESSAGE_NAME',
last_update_time=last_update_time
)
)
)
# Make the request
response = client.create_message(request)
# Handle the response
print(response)
create_message_quote_message()
Java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.CreateMessageRequest;
import com.google.chat.v1.Message;
import com.google.chat.v1.QuotedMessageMetadata;
import com.google.protobuf.util.Timestamps;
import com.google.workspace.api.chat.samples.utils.AuthenticationUtils;
import java.text.ParseException;
// This sample shows how to create a message that quotes another message.
public class CreateMessageQuoteMessage {
public static void main(String[] args) throws Exception, ParseException {
// Create a client.
ChatServiceClient chatClient = AuthenticationUtils.createClientWithUserCredentials();
// Initialize request argument(s).
// TODO(developer): Replace SPACE_NAME, QUOTED_MESSAGE_NAME,
// and QUOTED_MESSAGE_LAST_UPDATE_TIME here.
String parent = "spaces/SPACE_NAME";
String quotedMessageName = "QUOTED_MESSAGE_NAME";
String lastUpdateTime = "QUOTED_MESSAGE_LAST_UPDATE_TIME";
QuotedMessageMetadata quotedMessageMetadata =
QuotedMessageMetadata.newBuilder()
.setName(quotedMessageName)
.setLastUpdateTime(Timestamps.parse(lastUpdateTime))
.build();
Message message = Message.newBuilder()
.setText("I am responding to a quoted message!")
.setQuotedMessageMetadata(quotedMessageMetadata)
.build();
CreateMessageRequest request =
CreateMessageRequest.newBuilder()
.setParent(parent)
.setMessage(message)
.build();
// Make the request.
Message response = chatClient.createMessage(request);
// Handle the response.
System.out.println(response);
}
}
Apps Script
/**
* Creates a message that quotes another message.
*
* Relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.messages.create'
* referenced in the manifest file (appsscript.json).
*/
function createMessageQuoteMessage() {
// Initialize request argument(s)
// TODO(developer): Replace SPACE_NAME here.
const parent = 'spaces/SPACE_NAME';
const message = {
// The text content of the message.
text: 'I am responding to a quoted message!',
// quotedMessageMetadata lets Chat apps respond to a message by quoting it.
//
// TODO(developer): Replace QUOTED_MESSAGE_NAME
// and QUOTED_MESSAGE_LAST_UPDATE_TIME .
quotedMessageMetadata: {
name: 'QUOTED_MESSAGE_NAME',
lastUpdateTime: 'QUOTED_MESSAGE_LAST_UPDATE_TIME',
}
};
// Make the request
const response = Chat.Spaces.Messages.create(message, parent);
// Handle the response
console.log(response);
}
このサンプルを実行するには、次のように置き換えます。
SPACE_NAME: スペースのnameフィールドの ID。ID を取得するには、ListSpaces()(rpc、rest)メソッドを呼び出すか、スペースの URL から取得します。QUOTED_MESSAGE_NAME: 引用するメッセージのメッセージ リソースname(rpc、rest)。形式はspaces/{space}/messages/{message}です。QUOTED_MESSAGE_LAST_UPDATE_TIME: 引用するメッセージの最終更新時刻。メッセージが編集されていない場合は、createTime(rpc、rest)に対応します。メッセージが編集されている場合は、lastUpdateTime(rpc、rest)に対応します。
トラブルシューティング
Google Chat アプリまたはカードからエラーが返されると、Chat インターフェースに「エラーが発生しました」というメッセージが表示されます。または「リクエストを処理できませんでした。」Chat UI にエラー メッセージが表示されない場合でも、Chat アプリまたはカードで予期しない結果が生成されることがあります。たとえば、カード メッセージが表示されないことがあります。
Chat UI にエラー メッセージが表示されない場合でも、Chat 用アプリのエラー ロギングが有効になっていると、エラーの修正に役立つ詳細なエラー メッセージとログデータを利用できます。エラーの表示、デバッグ、修正については、Google Chat のエラーのトラブルシューティングと修正をご覧ください。
関連トピック
- カードビルダーを使用して、Chat 用アプリの JSON カード メッセージを設計してプレビューします。
- メッセージの書式を設定する
- メッセージの詳細を取得する。
- スペース内のメッセージを一覧表示する。
- メッセージを更新する。
- メッセージを削除する。
- Google Chat メッセージでユーザーを識別する。
- 着信 Webhook を使用して Google Chat にメッセージを送信する。