برای کاربران چت گوگل پیام خصوصی بفرستید

این صفحه نحوه ایجاد و ارسال پیام های خصوصی را به عنوان یک برنامه چت Google توضیح می دهد.

پیام خصوصی یک پیام برنامه چت است که فقط برای یک کاربر مشخص شده چت قابل مشاهده است. می‌توانید از پیام‌های خصوصی در فضاهایی با چند نفر استفاده کنید تا بتوانند به طور خصوصی با برنامه‌های چت تعامل داشته باشند. برای مثال، برنامه Chat شما می‌تواند به صورت خصوصی پیام‌هایی را برای انجام یکی از موارد زیر ارسال کند:

  • به یک دستور اسلش پاسخ دهید. برای مثال، اگر کاربری دستور /about slash برنامه Chat شما را در یک فاصله فراخوانی کند، برنامه Chat شما می‌تواند با یک پیام خصوصی پاسخ دهد که توضیح می‌دهد برنامه Chat شما چه کار می‌کند و چگونه از آن استفاده می‌کند.
  • اطلاعاتی را که فقط مربوط به یک کاربر است اطلاع دهید یا ارسال کنید. به عنوان مثال، به کاربر اطلاع دهید که کاری به او محول شده است یا به او یادآوری کنید که کار را کامل کند.
  • پیام خطا ارسال کنید. برای مثال، اگر کاربر متن آرگومان مورد نیاز را برای دستور اسلش حذف کند، برنامه Chat می‌تواند یک پیام خصوصی برای توضیح خطا ارسال کند و به کاربر در قالب‌بندی دستور کمک کند.

هنگامی که یک برنامه چت یک پیام خصوصی ارسال می کند، پیام برچسبی را نشان می دهد که به کاربر اطلاع می دهد که پیام فقط برای او قابل مشاهده است:

پیام خصوصی برای برنامه چت Cymbal Labs. در این پیام آمده است که اپلیکیشن Chat توسط Cymbal Labs ایجاد شده است و پیوندی به اسناد و پیوندی برای تماس با تیم پشتیبانی به اشتراک می گذارد.
شکل 1 : هنگامی که یک برنامه چت یک پیام خصوصی ارسال می کند، کاربر پیامی با برچسبی می بیند که Only visible to you .

پیش نیازها

Node.js

توجه: نمونه کد Node.js در این راهنما برای اجرا به عنوان یک تابع Google Cloud نوشته شده است.

پایتون

توجه: نمونه کدهای پایتون در این راهنما برای اجرا به عنوان یک تابع Google Cloud با استفاده از Python 3.10 نوشته شده است.

اسکریپت برنامه ها

یک پیام خصوصی بفرستید

برای ارسال یک پیام به صورت خصوصی به عنوان یک برنامه چت، هنگام ایجاد پیام، فیلد privateMessageViewer را در پیام مشخص کنید. شما پیام‌های خصوصی را درست مانند هر پیامی ایجاد می‌کنید: با پاسخ دادن به تعامل کاربر، یا فراخوانی ناهمزمان متد create() Google Chat API در منبع Message . برای مراحل ارسال پیام های متنی یا کارتی، به ارسال پیام مراجعه کنید.

مثال زیر JSON را برای یک پیام متنی خصوصی نشان می دهد که می گوید Hello private world! :

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

در این مثال، USER کاربر چت را نشان می‌دهد که می‌تواند پیام را که به عنوان منبع User قالب‌بندی شده است، مشاهده کند. اگر به یک تعامل کاربر پاسخ می دهید، می توانید شی User را از رویداد تعامل مشخص کنید. به عنوان مثال، بخش زیر را ببینید به صورت خصوصی به دستور اسلش پاسخ دهید .

در غیر این صورت، برای تعیین بیننده برای پیام خصوصی، می توانید از قسمت name منبع User استفاده کنید:

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

در این مثال، شما از فیلد name برای تعیین نام منبع User بیننده در چت گوگل استفاده می کنید. USER_ID با یک شناسه منحصر به فرد برای کاربر، مانند 12345678987654321 یا hao@cymbalgroup.com جایگزین کنید.

برای اطلاعات بیشتر درباره تعیین کاربران، به شناسایی و تعیین کاربران گپ Google مراجعه کنید.

به یک دستور اسلش به صورت خصوصی پاسخ دهید

کد زیر نمونه ای از یک برنامه چت را نشان می دهد که به دستور اسلش با یک پیام خصوصی پاسخ می دهد.

برنامه چت یک رویداد تعاملی 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.'
  });
};

اسکریپت برنامه ها

/**
* 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 };
  }
}

پایتون

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.',
  }

محدودیت ها

برای ارسال یک پیام خصوصی، پیام نمی تواند حاوی موارد زیر باشد یا از آن استفاده کند:

  • پیوست ها .
  • اقدامات جانبی
  • پیام های نیمه خصوصی به عنوان مثال، یک برنامه چت نمی تواند پیامی با متن ارسال کند و کارتی که متن آن فقط برای یک کاربر قابل مشاهده است اما کارت برای همه افراد موجود در فضا قابل مشاهده است.
  • احراز هویت کاربر . فقط برنامه‌های چت می‌توانند پیام‌های خصوصی ارسال کنند، بنابراین برنامه چت شما نمی‌تواند به عنوان کاربر برای ارسال پیام خصوصی تأیید اعتبار کند.

به روز رسانی یا حذف پیام های خصوصی

برای به‌روزرسانی یا حذف پیام‌های Google Chat، باید با Chat API تماس بگیرید. شما نمی توانید بیننده پیام خصوصی را تغییر دهید یا پیام را عمومی کنید. بنابراین، هنگامی که پیام های خصوصی را به روز می کنید، باید فیلد privateMessageViewer را در تماس API حذف کنید (این فیلد فقط خروجی است).

برای به روز رسانی یک پیام خصوصی، به به روز رسانی یک پیام مراجعه کنید. برای حذف یک پیام خصوصی، به حذف یک پیام مراجعه کنید.