إرسال رسالة

يشرح هذا الدليل الطرق المختلفة التي يمكن لتطبيقات Google Chat من خلالها إرسال الرسائل:

  • أرسِل رسائل نصية ورسائل بطاقات في الوقت الفعلي من خلال الرد على مستخدم التفاعل.
  • يمكنك إرسال الرسائل النصية ورسائل البطاقات بشكل غير متزامن من خلال استدعاء طريقة create على المورد Message.
  • بدء سلسلة رسائل أو الرد عليها
  • أرسِل رسالة وحدِّد اسمها.

تشير رسالة الأشكال البيانية مرجع Message يمثل نص أو بطاقة في Google Chat. يمكنك create أو get أو update أو delete رسالة في Google Chat API من خلال طلب الطرق المقابلة. لمعرفة المزيد من المعلومات عن الرسائل النصية ورسائل البطاقة، يمكنك الاطّلاع على نظرة عامة على رسائل Google Chat

الحد الأقصى لحجم الرسالة (بما في ذلك أي نصوص أو بطاقات) هو 32000 بايت. إذا تجاوزت الرسالة هذا الحجم، سيستخدم تطبيق Chat. يمكنه إرسال رسائل متعددة بدلاً من ذلك.

بدلاً من استدعاء طريقة create على مورد Message Google Chat API لإرسال رسالة نصية أو بطاقة بشكل غير متزامن، يمكن لتطبيقات Google Chat أيضًا إنشاء رسائل للردّ على تفاعلات المستخدمين في في الوقت الفعلي. لا تتطلب الردود على تفاعلات المستخدم المصادقة إتاحة أنواع أخرى من الرسائل، بما في ذلك مربّعات الحوار التفاعلية والروابط والمعاينات فقط. للحصول على التفاصيل، يمكنك مراجعة تلقّي التفاعلات والردّ عليها باستخدام تطبيق Google Chat

المتطلبات الأساسية

Node.js

Python

  • Google Workspace لديه إمكانية الوصول إلى Google Chat
  • Python 3.6 أو أعلى
  • النافذة ضمن النافذة أداة إدارة الحِزم
  • أحدث مكتبات برامج Google للغة بايثون. لتثبيت التطبيقات أو تحديثها، قم بتشغيل الأمر التالي في واجهة سطر الأوامر:

    pip3 install --upgrade google-api-python-client google-auth
    
  • مشروع على Google Cloud مع تفعيل وإعداد Google Chat API لمعرفة الخطوات، يُرجى الاطّلاع على إنشاء تطبيق Google Chat
  • تم ضبط الإذن لتطبيق Chat بالإرسال. الرسائل غير المتزامنة. لا يلزم إعداد التفويض لإرسال الرسائل في الوقت الفعلي.

برمجة تطبيقات

إرسال رسائل نصية

يصف هذا القسم كيفية إرسال الرسائل النصية بالطريقتين التاليتين:

  • أرسل رسالة نصية في الوقت الفعلي من خلال الرد على تفاعل المستخدم.
  • أرسِل رسالة نصية من خلال طلب البيانات من Google Chat API بشكل غير متزامن.

إرسال رسالة نصية في الوقت الفعلي

في هذا المثال، يُنشئ تطبيق Chat رسالة نصية ويرسلها. رسالة كلما تمت إضافتها إلى مساحة. للتعرف على أفضل الممارسات المستخدمين المشاركين، راجع مساعدة المستخدمين والمساحات على البدء من خلال خطوات إعداد مفيدة

إرسال رسالة نصية عندما يضيف مستخدم تطبيق Chat الخاص بك إلى مساحة، تطبيق Chat الاستجابة إلى ADDED_TO_SPACE حدث تفاعل. للرد على من أحداث تفاعل ADDED_TO_SPACE مع رسالة نصية، استخدِم الرمز التالي:

Node.js

/**
 * 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.
 */
exports.onMessage = function onMessage(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send(
      'Hello! This function is meant to be used in a Google Chat space.');
  }

  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      '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`.'
    });
  }
};

برمجة تطبيقات

/**
 * 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 onAddToSpace(event) {

  return {
    '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.bot. مع مصادقة المستخدم، حدِّد نطاق تفويض chat.messages.create.
  • عليك استدعاء طريقة create في صفحة مرجع واحد (Message)

إرسال رسالة نصية تحتوي على مصادقة التطبيقات

إليك كيفية إرسال رسالة نصية باستخدام مصادقة التطبيقات:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_create_text_message_app.py
  2. أدرِج الرمز التالي في chat_create_text_message_app.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل SPACE باسم مساحة التي يمكنك الحصول عليها من طريقة واحدة (spaces.list()) في Chat API أو من عنوان URL للمساحة.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_create_text_message_app.py
    

تعرض واجهة برمجة التطبيقات Chat مثيلاً من Message يوضح بالتفصيل الرسالة المرسلة.

إرسال رسالة نصية مع مصادقة المستخدم

إليك كيفية إرسال رسالة نصية باستخدام مصادقة المستخدم:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_create_text_message_user.py
  2. أدرِج الرمز التالي في chat_create_text_message_user.py:

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.messages.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then creates a text message in a Chat space.
        '''
    
        # Start with no credentials.
        creds = None
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                        'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # Build a service endpoint for Chat API.
        chat = build('chat', 'v1', credentials=creds)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().messages().create(
    
            # The space to create the message in.
            #
            # Replace SPACE with a space name.
            # Obtain the space name from the spaces resource of Chat API,
            # or from a space's URL.
            parent='spaces/SPACE',
    
            # The message to create.
            body={'text': 'Hello, world!'}
    
        ).execute()
    
        # Prints details about the created message.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. في الرمز، استبدِل SPACE باسم مساحة التي يمكنك الحصول عليها من spaces.list() في واجهة برمجة التطبيقات Chat أو من عنوان URL للمساحة.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_create_text_message_user.py
    

تعرض واجهة برمجة التطبيقات Chat مثيلاً من Message يوضح بالتفصيل الرسالة المرسلة.

إرسال رسائل البطاقة

يصف هذا القسم كيفية إرسال رسائل البطاقة بالطريقتين التاليتين:

  • يمكنك إرسال رسالة بطاقة في الوقت الفعلي من خلال الردّ على تفاعل من المستخدم.
  • أرسِل رسالة بطاقة من خلال طلب بيانات Google Chat API بشكل غير متزامن.

إرسال رسالة بطاقة في الوقت الفعلي

يمكن للتطبيقات في Chat إنشاء رسائل بطاقات للرد على مستخدم تفاعل، مثلاً عندما يرسل المستخدم إلى تطبيق Chat رسالة أو إضافة تطبيق Chat إلى مساحة. معرفة المزيد حول الاستجابة لتفاعلات المستخدم، يُرجى الاطلاع على تلقي والاستجابة التفاعل مع تطبيق Chat الأحداث.

في هذا المثال، يرسل المستخدم رسالة إلى تطبيق Chat. ويردّ تطبيق Chat بذلك من خلال إرسال رسالة بطاقة يعرض اسم المستخدم والصورة الرمزية:

تطبيق في Chat يستجيب من خلال بطاقة تعرض الاسم المعروض للمُرسِل وصورته الرمزية
.

Node.js

node/avatar-app/index.js
/**
 * Google Cloud Function that responds to messages sent from a
 * Google Chat room.
 *
 * @param {Object} req Request sent from Google Chat room
 * @param {Object} res Response to send back
 */
exports.helloChat = function helloChat(req, res) {
  if (req.method === 'GET' || !req.body.message) {
    res.send('Hello! This function is meant to be used in a Google Chat ' +
      'Room.');
  }

  const sender = req.body.message.sender.displayName;
  const image = req.body.message.sender.avatarUrl;

  const data = createMessage(sender, image);

  res.send(data);
};

/**
 * Creates a card with two widgets.
 * @param {string} displayName the sender's display name
 * @param {string} imageUrl the URL for the sender's avatar
 * @return {Object} a card with the user's avatar.
 */
function createMessage(displayName, imageUrl) {
  const cardHeader = {
    title: `Hello ${displayName}!`,
  };

  const avatarWidget = {
    textParagraph: {text: 'Your avatar picture: '},
  };

  const avatarImageWidget = {
    image: {imageUrl},
  };

  const avatarSection = {
    widgets: [
      avatarWidget,
      avatarImageWidget,
    ],
  };

  return {
    text: 'Here\'s your avatar',
    cardsV2: [{
      cardId: 'avatarCard',
      card: {
        name: 'Avatar Card',
        header: cardHeader,
        sections: [avatarSection],
      }
    }],
  };
}

Python

python/avatar-app/main.py
from typing import Any, Mapping

import flask
import functions_framework


# Google Cloud Function that responds to messages sent in
# Google Chat.
#
# @param {Object} req Request sent from Google Chat.
# @param {Object} res Response to send back.
@functions_framework.http
def hello_chat(req: flask.Request) -> Mapping[str, Any]:
  if req.method == "GET":
    return "Hello! This function must be called from Google Chat."

  request_json = req.get_json(silent=True)

  display_name = request_json["message"]["sender"]["displayName"]
  avatar = request_json["message"]["sender"]["avatarUrl"]

  response = create_message(name=display_name, image_url=avatar)

  return response


# Creates a card with two widgets.
# @param {string} name the sender's display name.
# @param {string} image_url the URL for the sender's avatar.
# @return {Object} a card with the user's avatar.
def create_message(name: str, image_url: str) -> Mapping[str, Any]:
  avatar_image_widget = {"image": {"imageUrl": image_url}}
  avatar_text_widget = {"textParagraph": {"text": "Your avatar picture:"}}
  avatar_section = {"widgets": [avatar_text_widget, avatar_image_widget]}

  header = {"title": f"Hello {name}!"}

  cards = {
      "text": "Here's your avatar",
      "cardsV2": [
          {
              "cardId": "avatarCard",
              "card": {
                  "name": "Avatar Card",
                  "header": header,
                  "sections": [avatar_section],
              },
          }
      ]
  }

  return cards

برمجة تطبيقات

يرسل هذا المثال رسالة بطاقة من خلال عرض بطاقة JSON. يمكنك أيضًا استخدام صفحة خدمة بطاقة "برمجة تطبيقات Google"

apps-script/avatar-app/hello-chat.gs
/**
 * Responds to a MESSAGE event in Google Chat.
 *
 * @param {Object} event the event object from Google Chat
 */
function onMessage(event) {
  const displayName = event.message.sender.displayName;
  const avatarUrl = event.message.sender.avatarUrl;

  return createMessage(displayName, avatarUrl);
}

/**
 * Creates a card with two widgets.
 * @param {string} displayName the sender's display name
 * @param {string} avatarUrl the URL for the sender's avatar
 * @return {Object} a card with the sender's avatar.
 */
function createMessage(displayName, avatarUrl) {
  const cardHeader = {
    title: `Hello ${displayName}!`
  };

  const avatarWidget = {
    textParagraph: {text: 'Your avatar picture: '}
  };

  const avatarImageWidget = {
    image: {imageUrl: avatarUrl}
  };

  const avatarSection = {
    widgets: [
      avatarWidget,
      avatarImageWidget
    ],
  };

  return {
    text: 'Here\'s your avatar',
    cardsV2: [{
      cardId: 'avatarCard',
      card: {
        name: 'Avatar Card',
        header: cardHeader,
        sections: [avatarSection],
      }
    }],
  };
}

إرسال رسالة بطاقة بشكل غير متزامن

لإرسال رسالة بطاقة، تمرير ما يلي في طلبك:

  • باستخدام مصادقة التطبيق، حدِّد نطاق تفويض chat.bot. لا يمكنك إرسال رسالة بطاقة مع مصادقة المستخدم
  • عليك استدعاء طريقة create في صفحة مرجع واحد (Message)

في ما يلي مثال على رسالة بطاقة:

تم إرسال رسالة بطاقة باستخدام Chat API.

في ما يلي كيفية إرسال رسالة بطاقة مع مصادقة التطبيقات:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_create_card_message.py
  2. أدرِج الرمز التالي في chat_create_card_message.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # The message to create.
        body=
        {
          'cardsV2': [{
            'cardId': 'createCardMessage',
            'card': {
              'header': {
                'title': 'A card message!',
                'subtitle': 'Created with the Chat API',
                'imageUrl': 'https://developers.google.com/chat/images/chat-product-icon.png',
                'imageType': 'CIRCLE'
              },
              'sections': [
                {
                  'widgets': [
                    {
                      'buttonList': {
                        'buttons': [
                          {
                            'text': 'Read the docs!',
                            'onClick': {
                              'openLink': {
                                'url': 'https://developers.google.com/chat'
                              }
                            }
                          }
                        ]
                      }
                    }
                  ]
                }
              ]
            }
          }]
        }
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل SPACE باسم مساحة التي يمكنك الحصول عليها من طريقة واحدة (spaces.list) في Chat API أو من عنوان URL للمساحة.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_create_card_message.py
    

بدء سلسلة رسائل أو الرد عليها

لبدء سلسلة رسائل، أرسِل رسالة ثم غادر thread.name فارغة؛ يملأها Google Chat عند إنشاء سلسلة المحادثات. بشكل اختياري، من أجل تخصيص اسم سلسلة المحادثات وتحديد thread.threadKey .

للرد على سلسلة رسائل، أرسِل رسالة تحدّد قيمة الحقل threadKey أو name. إذا كان مستخدم أو غيره قد أنشأ سلسلة المحادثات هذه تطبيق Chat، عليك استخدام الحقل "thread.name".

إذا لم يتم العثور على سلسلة محادثات مطابقة، يمكنك تحديد ما إذا كان يجب أن تبدأ الرسالة سلسلة محادثات جديدة أو يتعذّر نشرها من خلال ضبط messageReplyOption .

في حال messageReplyOption التي تم تعيينها، فيجب أيضًا تعيين thread.name أو thread.threadKey.

إليك كيفية بدء سلسلة محادثات أو الرد عليها مع تحديد الحقل threadKey على أنه nameOfThread:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_create_message_thread.py
  2. أدرِج الرمز التالي في chat_create_message_thread.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # Whether to start a thread or reply to an existing one.
        #
        # Required when threading is enabled in a space unless starting a
        # thread.  Ignored in other space types. Threading is enabled when
        # space.spaceThreadingState is THREADED_MESSAGES.
        #
        # REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD replies to an existing thread
        # if one exists, otherwise it starts a new one.
        messageReplyOption='REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD',
    
        # The message body.
        body={
    
            # The message to create.
            'text': 'Start or reply to another message in a thread!',
    
            # The thread to start or reply to.
            'thread': {
                'threadKey': 'nameOfThread'
            }
        }
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدِل SPACE باسم مساحة التي يمكنك الحصول عليها من طريقة واحدة (spaces.list) في Chat API أو من عنوان URL للمساحة.

  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_create_message_thread.py
    

تعرض واجهة برمجة التطبيقات Chat مثيلاً من Message يوضح بالتفصيل الرسالة المرسلة.

تسمية رسالة

يوضح هذا القسم كيفية تسمية رسالة من خلال تعيين معرّف مخصص . يمكنك استخدام المعرّفات المخصّصة للحصول على الرسائل أو تعديلها أو حذفها. المعرّفات المخصّصة تحديد رسالة بدون الحاجة إلى تخزين المعرّف الذي يعيّنه النظام من اسم مورد الرسالة (ممثلًا في الحقل name) المورد يتم إنشاء الاسم في نص الاستجابة عند إنشاء الرسالة.

فعلى سبيل المثال، لاسترداد رسالة باستخدام الطريقة get()، يمكنك استخدام طريقة اسم المورد لتحديد الرسالة التي يجب استردادها. اسم المورد هو بتنسيق spaces/{space}/messages/{message}، حيث يمثل {message} المعرف الذي يعينه النظام. إذا كنت قد اخترت اسم الرسالة، يمكنك استبدال قيمة {message} مع المعرّف المخصص.

لتسمية رسالة، حدِّد معرّفًا مخصّصًا في messageId عند إنشاء الرسالة. يضبط الحقل messageId قيمة السمة clientAssignedMessageId في المورد Message.

لا يمكنك تسمية رسالة إلا عند إنشائها. لا يمكنك تسمية أو تعديل مُعرّف مخصّص للرسائل الحالية. يجب أن يستوفي المعرّف المخصّص ما يلي: المتطلبات:

  • يبدأ بـ client-. على سبيل المثال، client-custom-name هو نطاق مخصص صالح. المعرّف، ولكن custom-name ليس كذلك.
  • يحتوي على ما يصل إلى 63 حرفًا وأحرف صغيرة وأرقام واصلات.
  • أن تكون فريدة داخل مساحة لا يمكن لتطبيق Chat استخدام المعرّف المخصص نفسه لرسائل مختلفة.

في ما يلي كيفية إرسال رسالة باستخدام معرّف مخصّص:

Python

  1. في دليل العمل، أنشئ ملفًا باسم chat_create_named_message.py
  2. أدرِج الرمز التالي في chat_create_named_message.py:

    from apiclient.discovery import build
    from google.oauth2 import service_account
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = service_account.Credentials.from_service_account_file(
        'credentials.json', scopes=SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Create a Chat message with a custom name.
    result = chat.spaces().messages().create(
    
        # The space to create the message in.
        #
        # Replace SPACE with a space name.
        # Obtain the space name from the spaces resource of Chat API,
        # or from a space's URL.
        parent='spaces/SPACE',
    
        # Custom name for the message used to facilitate later operations.
        messageId='client-NAME',
    
        # The message to create.
        body={'text': 'Hello, world!'}
    
    ).execute()
    
    print(result)
    
  3. في الرمز، استبدل ما يلي:

    • SPACE: رقم تعريف المساحة التي تريد نشر الرسالة، والتي يمكنك الحصول عليها من طريقة واحدة (spaces.list) في Chat API أو من عنوان URL للمساحة.
    • NAME: الاسم المخصّص للرسالة
  4. في دليل العمل، أنشئ النموذج وشغِّله:

    python3 chat_create_named_message.py
    

تعرض واجهة برمجة التطبيقات Chat مثيلاً من Message

إضافة تطبيقات مصغّرة تفاعلية في أسفل الرسالة

يمكنك اختياريًا إلحاق الرسائل باستخدام التطبيقات المصغّرة الملحقة. تظهر التطبيقات المصغّرة للملحقات بعد أيّ نص أو بطاقات في الرسالة. يمكنك استخدام هذه التطبيقات المصغّرة لمطالبة المستخدمين بالتفاعل مع رسالتك بطرق عديدة، منها ما يلي:

  • قيِّم دقة رسالة أو مدى رضاها.
  • يمكنك الإبلاغ عن مشكلة في الرسالة أو تطبيق Chat.
  • افتح رابطًا يؤدي إلى محتوى ذي صلة، مثل المستندات.
  • رفض الرسائل المشابهة أو تأجيلها من تطبيق Chat لفترة زمنية محددة.

لإضافة تطبيقات مصغّرة للملحقات، يجب تضمين accessoryWidgets[] في الرسالة وتحديد عنصر واحد أو أكثر AccessoryWidgets التي تريد تضمينها. يجب أن تكون الرسالة مرئية لجميع المشاركين في المساحة. (لا يمكنك إضافة تطبيقات مصغّرة إلى الرسائل الخاصة).

تعرض الصورة التالية تطبيق Chat ملحقًا به. رسالة نصية تحتوي على التطبيقات المصغّرة للملحقات كي يتمكّن المستخدمون من تقييم تجربتهم باستخدام تطبيق Chat.

أمثلة على التطبيقات المصغّرة للإكسسوارات

يعرض نموذج الرمز البرمجي التالي ملف JSON لهذه الرسالة. عندما ينقر مستخدم على مع أحد الأزرار، يؤدي التفاعل إلى تشغيل الدالة المقابلة (مثل 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 إرسال الرسائل النصية ورسائل البطاقات بخصوصية تامة، لا تظهر الرسالة إلا لمستخدم واحد في المساحة. لإرسال رسالة بشكل خاص، عليك تحديد الحقل privateMessageViewer في الرسالة. فقط يمكن لتطبيقات Chat إرسال رسائل خاصة. لإرسال رسالة خاصة بشكل غير متزامن، عليك استخدام مصادقة التطبيقات.

لمعرفة التفاصيل، يُرجى الاطّلاع على مقالة إرسال رسائل خاصة إلى Google Chat. المستخدمين.

تحديد المشاكل وحلّها

عند تثبيت تطبيق Google Chat أو تعرض card خطأً، تعرض واجهة Chat رسالة مفادها "حدث خطأ". أو "تعذَّرت معالجة طلبك". في بعض الأحيان، لا يمكن واجهة مستخدم Chat لا يعرض أي رسالة خطأ، ولكن يظهر تطبيق Chat أو ينتج عن بطاقة نتيجة غير متوقعة؛ على سبيل المثال، قد لا تظهر رسالة البطاقة موضع الإعلان.

على الرغم من أنه قد لا تظهر رسالة الخطأ في واجهة مستخدم Chat، تتوفر رسائل خطأ وصفية وبيانات السجل لمساعدتك في إصلاح الأخطاء عند تفعيل ميزة تسجيل الأخطاء لتطبيقات Chat للحصول على مساعدة في العرض، وتصحيح الأخطاء وإصلاح الأخطاء، فراجع تحديد مشاكل Google Chat وحلّها.