このページでは、Google Chat アプリがメッセージを送信してユーザーの操作に返信する方法について説明します。
Google Chat では、アドオンは Google Chat アプリとしてユーザーに表示されます。詳細については、Google Chat の拡張機能の概要をご覧ください。
-
図 2. チャットアプリで、ユーザーが情報を入力できるダイアログが開きます。 -
図 5. Chat アプリがテキストとインタラクティブなカードを含むメッセージを送信します。
前提条件
Node.js
Google Chat を拡張する Google Workspace アドオン。ビルドするには、HTTP クイックスタートを完了します。
Apps Script
Google Chat を拡張する Google Workspace アドオン。作成するには、Apps Script のクイックスタートを完了します。
メッセージを設計する
チャットアプリでは、メッセージに次のいずれかを含めることができます。
- ハイパーリンク、@ メンション、絵文字を含むテキスト。
- 1 つ以上のカード。メッセージに表示することも、ダイアログとして新しいウィンドウで開くこともできます。
- 1 つ以上のアクセサリ ウィジェット。メッセージ内のテキストやカードの後に表示されるボタンです。
メッセージの設計については、次の Google Chat API のドキュメントをご覧ください。
メッセージで応答
Chat アプリは、次のトリガーまたは操作に対してメッセージで応答できます。
- メッセージ トリガー: ユーザーが Chat アプリに名前リンク付きメッセージを送信したり、ダイレクト メッセージを送信したりしたときなど。
- スペースに追加トリガー: ユーザーが Google Workspace Marketplace から Chat アプリをインストールしたときや、スペースに追加したときなど。
- メッセージまたはダイアログ内のカードからのボタンクリック。たとえば、ユーザーが情報を入力して送信をクリックしたときなどです。
そうでない場合は、Google Chat API を呼び出すことで、Chat アプリが事前にメッセージを送信できます。
メッセージで返信するには、CreateMessageAction
オブジェクトを使用してアクション DataActions
を返します。
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
"message": MESSAGE
}}}
MESSAGE は、Chat API の Message
リソースに置き換えます。アクションの仕組みについて詳しくは、チャット アクションをご覧ください。
次の例では、Chat アプリがスペースに追加されるたびにテキスト メッセージを作成して送信します。ユーザーが Chat アプリをスペースに追加したときにテキスト メッセージを送信するには、Chat アプリがスペースに追加されたトリガーに応答して、アクション DataActions
を返します。
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Workspace Add-on.
* @param {Object} res The response object from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn' +
'what else I can do, type `/help`.'
}}}}});
}
};
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar' +
'from Google Chat. Take a look at your schedule today by typing' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn' +
'what else I can do, type `/help`.'
}}}}};
}
このコードサンプルは、次のテキスト メッセージを返します。
メッセージで返信する方法のその他の例については、次のガイドをご覧ください。
メッセージを更新する
チャット アプリは、送信したメッセージを更新することもできます。たとえば、ユーザーがダイアログを送信した後や、メッセージのボタンをクリックした後にメッセージを更新する場合などです。
Chat アプリのメッセージを更新するには、次の例に示すように、UpdateMessageAction
を使用してアクション DataActions
を返します。
{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
"message": MESSAGE
}}}}
MESSAGE は、Chat API の Message
リソースに置き換えます。
アクションの仕組みについて詳しくは、チャット アクションをご覧ください。
チャットアプリは、ユーザーからのメッセージを更新して、送信されたリンクのプレビューを返すこともできます。詳しくは、Google Chat メッセージでリンクをプレビューするをご覧ください。
Google Chat API を使用してインタラクションに返信する、または先行メッセージの送信を行う
Chat アプリでは、アドオン アクションを返す代わりに、Google Chat API を使用してインタラクションに応答する必要があります。たとえば、Chat アプリは、次のいずれかを行うために Google Chat API を呼び出す必要があります。
- スケジュールに沿ってメッセージを送信したり、外部リソースの変更に関するメッセージを送信したりできます。たとえば、新しい問題やケースに関する通知などです。
- やり取りから 30 秒以上経過してから返信する。たとえば、長時間実行タスクの完了後にメッセージで応答する場合などです。
- やり取りが行われたスペースの外部にメッセージを送信する。
- Chat ユーザーの代理でメッセージを送信する。
Chat API を使用してメッセージを送信するには、認証を設定し、Message
リソースで create()
メソッドを呼び出す必要があります。手順については、Google Chat API を使用したメッセージの送信をご覧ください。
関連トピック
- Google Chat のインターフェースを作成する
- スラッシュ コマンドに応答する
- インタラクティブ ダイアログを開く
- Google Chat ユーザーから情報を収集する
- Google Chat メッセージ内のリンクをプレビューする
- Google Chat API を使用してメッセージを送信する