Google Chat ユーザーにプライベート メッセージを送信する

このページでは、Google Chat でプライベート メッセージを作成、送信する方法について説明します。 Google Chat アプリ。

プライベート メッセージは、Google Chat のメッセージ アプリで ユーザーに表示されます。プライベート メッセージは、 スペースを作成し、1 人で 1 人で Chat 用アプリ。たとえば、 Chat アプリは、メッセージを送信して、 次のとおりです。

  • スラッシュ コマンドに応答します。たとえば ユーザーが Chat 用アプリの /about スラッシュを Chat アプリは、スペースで送信された Chat 用アプリの処理内容について説明するプライベート メッセージ その使い方を説明します
  • 1 人のユーザーにのみ関連する情報を通知または送信する。対象 たとえば、タスクが割り当てられたことをユーザーに通知したり、 タスクを完了します。
  • エラー メッセージを送信します。たとえば、ユーザーが必須の引数 text を省略した場合です。 Chat アプリは、スラッシュ コマンドの エラーの説明とコマンドの書式設定をサポートするプライベート メッセージです。
  • スペースに追加されたユーザーに限定公開のウェルカム メッセージを送信し、 Chat 用アプリのガイドラインや使用方法について説明します。

Chat アプリからプライベート メッセージを送信すると、 は、自分だけが閲覧できることをユーザーに通知するラベルを表示します。

宛ての非公開メッセージ:
  Cymbal Labs Chat アプリを使用してみます。このメッセージには、
  Cymbal Labs が作成した Chat アプリはリンクを共有しています
  ドキュメントとサポートチームへの問い合わせ用リンクを参照してください。
図 1: Chat 用アプリが 限定公開メッセージを受け取ると、そのメッセージに (Only visible to you と表示されています)。

前提条件

Node.js

  • インタラクティブ機能を有効にする Google Chat アプリ。新しい HTTP サービスを使用したインタラクティブな Chat アプリについては、こちらのクイックスタートを完了します。
  • スラッシュ コマンドに非公開で応答するには、コマンドを クリックします。ビルド方法については、以下をご覧ください。 スラッシュ コマンドに応答する

  • プライベート メッセージを送信するには、 messages.create() アプリの認証を使用する必要があります。

Python

  • インタラクティブ機能を有効にする Google Chat アプリ。新しい HTTP サービスを使用したインタラクティブな Chat アプリについては、こちらのクイックスタートを完了します。
  • スラッシュ コマンドに非公開で応答するには、 クリックします。ビルド方法については、以下をご覧ください。 スラッシュ コマンドに応答する

  • プライベート メッセージを送信するには、 messages.create() アプリの認証を使用する必要があります。

Apps Script

  • インタラクティブ機能を有効にする Google Chat アプリ。新しい 対話型の Chat アプリを使用するには、このクイックスタートを完了します。
  • スラッシュ コマンドに非公開で応答するには、コマンドを クリックします。ビルド方法については、以下をご覧ください。 スラッシュ コマンドに応答する

  • プライベート メッセージを送信するには、 messages.create() アプリの認証を使用する必要があります。

非公開メッセージの送信

Chat アプリとしてメッセージを非公開で送信するには、 privateMessageViewer メッセージの作成時に指定する必要があります。メッセージの内容と メッセージの作成: ユーザーの操作に返信するか、 Google Chat API の非同期呼び出し 次のオブジェクトの create() メソッド: Message リソース。テキスト メッセージやカード メッセージを送信する手順については、以下をご覧ください。 メッセージを送信する

次の例は、プライベート テキスト メッセージの JSON を示しています。 Hello private world!:

{
    "text": "Hello private world!",
    "privateMessageViewer": "USER"
}

この例では、USER は Chat ユーザーを表します。 メッセージを閲覧できるユーザーを指定できます。 User リソース。コメントに返信する ユーザー操作では、操作イベントから User オブジェクトを指定できます。 例については、次のセクションをご覧ください。 スラッシュ コマンドに非公開で応答する

それ以外の場合、プライベート メッセージの閲覧者を指定するには、 Username フィールド resource:

{
    "text": "Hello private world!",
    "privateMessageViewer": {
      "name": "users/USER_ID"
    }
}

この例では、name フィールドを使用して、閲覧者の User を指定します。 リソース名を入力します。USER_ID を交換 (例: 12345678987654321)または一意の ID に置き換えます。 hao@cymbalgroup.com

ユーザーの指定について詳しくは、このモジュールの Google Chat ユーザーを特定して指定する

スラッシュ コマンドに非公開で応答する

次のコードは、Chat 用アプリの例を示しています。 これは、スラッシュ コマンドにプライベート メッセージで応答します。

Chat アプリは MESSAGE インタラクション イベント /help スラッシュ コマンドに、個人的なテキスト メッセージで応答する では、使用方法について説明します。

Node.js

/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {!Object} req Request sent from Google Chat app
* @param {!Object} res Response to send back
*
* @return {!Object} respond to slash command
*/
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    return res.send('Hello! This function is meant to be used in Google Chat app.');
  }

  const event = req.body;

  // Checks for the presence of event.message.slashCommand.
  // If the slash command is "/help", responds with a private text message.
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case '1':  // /help
        return res.json({
          privateMessageViewer: event.user,
          text: 'This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>.'
        });
    }
  }

  // If the Chat app doesn't detect a slash command, it responds
  // with a private text message
  return res.json({
    privateMessageViewer: event.user,
    text: 'Try a slash command.'
  });
};

Apps Script

/**
* Responds to a MESSAGE event in Google Chat.
*
* @param {Object} event the event object from Google Chat
*/
function onMessage(event) {
  if (event.message.slashCommand) {
    switch (event.message.slashCommand.commandId) {
      case 1: // Responds to /help
        return {
          "privateMessageViewer": event.user,
          "text": "This Chat app was created by Cymbal Labs. To get help with this app, <https://cymbalgroup.com/docs|see our documentation> or <https://cymbalgroup.com/support|contact our support team>."
        };
    }
  }
  else {
    return { "text": "Try a slash command.", "privateMessageViewer": event.user };
  }
}

Python

from typing import Any, Mapping

import flask
import functions_framework

@functions_framework.http
def main(req: flask.Request) -> Mapping[str, Any]:
  """Responds to a MESSAGE event in Google Chat.

  Args:
      req (flask.Request): the event object from Chat API.

  Returns:
      Mapping[str, Any]: open a Dialog in response to a card's button click.
  """
  if req.method == 'GET':
    return 'Hello! This function must be called from Google Chat.'

  request = req.get_json(silent=True)

  # Checks for the presence of event.message.slashCommand.
  # If the slash command is "/help", responds with a private text message.
  if request.get('message', {}).get('slashCommand'):
    command_id = request.get('message', {}).get('slashCommand').get('commandId')
    if command_id == '1':  # /help
      return {
          'privateMessageViewer': request.get('user'),
          'text': (
              'This Chat app was created by Cymbal Labs. To get help with this'
              ' app, <https://cymbalgroup.com/docs|see our documentation> or'
              ' <https://cymbalgroup.com/support|contact our support team>.'
          ),
      }

  return {
      'privateMessageViewer': request.get('user'),
      'text': 'Try a slash command.',
  }

制限事項

プライベート メッセージを送信するには、メッセージに 次のとおりです。

  • 添付ファイル
  • アクセサリ アクション
  • 一部の限定公開メッセージ。たとえば、Chat 用アプリは テキスト メッセージを送信できません。 このカードはスペースのすべてのユーザーに公開されます。
  • ユーザー認証。 プライベート メッセージを送信できるのは Chat アプリのみであるため、 Chat アプリが、メッセージを送信するためのユーザーとして認証できない 非公開にできます。

個人的なメッセージを更新または削除する

Google Chat のメッセージを更新または削除するには、 Chat API。プライベート メッセージの閲覧者を変更したり、メッセージを 表示されます。そのため、プライベート メッセージを更新する場合は、 API 呼び出しの privateMessageViewer フィールド(このフィールドは出力のみ)。

プライベート メッセージを更新するには、以下をご覧ください。 メッセージを更新する。 プライベート メッセージを削除するには、以下をご覧ください。 メールを削除する