Cards v2

بطاقة

واجهة بطاقة معروضة في رسالة على Google Chat أو إضافة Google Workspace

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

تصميم البطاقات ومعاينتها باستخدام "أداة إنشاء البطاقات"

فتح "أداة إنشاء البطاقات"

لمعرفة كيفية إنشاء البطاقات، يُرجى الاطّلاع على المستندات التالية:

ملاحظة: يمكنك إضافة ما يصل إلى 100 تطبيق مصغّر لكل بطاقة. ويتم تجاهل أي تطبيقات مصغّرة تتجاوز هذا الحدّ. ينطبق هذا الحدّ على كلّ من رسائل البطاقات ومحادثات البطاقات في تطبيقات Google Chat، وعلى البطاقات في "إضافات Google Workspace".

مثال: رسالة بطاقة لتطبيق Google Chat

مثال على بطاقة جهة اتصال

لإنشاء نموذج رسالة البطاقة في Google Chat، استخدِم تنسيق JSON التالي:

{
  "cardsV2": [
    {
      "cardId": "unique-card-id",
      "card": {
        "header": {
           "title": "Sasha",
           "subtitle": "Software Engineer",
           "imageUrl":
           "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png",
           "imageType": "CIRCLE",
           "imageAltText": "Avatar for Sasha"
         },
         "sections": [
           {
             "header": "Contact Info",
             "collapsible": true,
             "uncollapsibleWidgetsCount": 1,
             "widgets": [
               {
                 "decoratedText": {
                   "startIcon": {
                     "knownIcon": "EMAIL"
                   },
                   "text": "sasha@example.com"
                 }
               },
               {
                 "decoratedText": {
                   "startIcon": {
                     "knownIcon": "PERSON"
                   },
                   "text": "<font color=\"#80e27e\">Online</font>"
                 }
               },
               {
                 "decoratedText": {
                   "startIcon": {
                     "knownIcon": "PHONE"
                   },
                   "text": "+1 (555) 555-1234"
                 }
               },
               {
                 "buttonList": {
                   "buttons": [
                     {
                       "text": "Share",
                       "onClick": {
                        "openLink": {
                           "url": "https://example.com/share"
                         }
                       }
                     },
                     {
                       "text": "Edit",
                       "onClick": {
                         "action": {
                           "function": "goToView",
                           "parameters": [
                             {
                               "key": "viewType",
                               "value": "EDIT"
                             }
                           ]
                         }
                       }
                     }
                   ]
                 }
               }
             ]
           }
         ]
       }
    }
  ]
}
تمثيل JSON
{
  "header": {
    object (CardHeader)
  },
  "sections": [
    {
      object (Section)
    }
  ],
  "sectionDividerStyle": enum (DividerStyle),
  "cardActions": [
    {
      object (CardAction)
    }
  ],
  "name": string,
  "fixedFooter": {
    object (CardFixedFooter)
  },
  "displayStyle": enum (DisplayStyle),
  "peekCardHeader": {
    object (CardHeader)
  }
}
الحقول
header

object (CardHeader)

عنوان البطاقة يحتوي العنوان عادةً على صورة رئيسية وعنوان. تظهر العناوين دائمًا في أعلى البطاقة.

sections[]

object (Section)

يحتوي على مجموعة من التطبيقات المصغّرة. يحتوي كل قسم على عنوان اختياري. يتم فصل الأقسام بصريًا باستخدام فاصل سطر. للحصول على مثال في تطبيقات Google Chat، اطّلِع على تحديد قسم من البطاقة.

sectionDividerStyle

enum (DividerStyle)

نمط الفاصل بين العنوان والأقسام والتذييل

cardActions[]

object (CardAction)

إجراءات البطاقة تتم إضافة الإجراءات إلى قائمة شريط أدوات البطاقة.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

على سبيل المثال، ينشئ ملف JSON التالي قائمة إجراءات بطاقة تتضمّن خيارَي Settings و Send Feedback:

"cardActions": [
  {
    "actionLabel": "Settings",
    "onClick": {
      "action": {
        "functionName": "goToView",
        "parameters": [
          {
            "key": "viewType",
            "value": "SETTING"
         }
        ],
        "loadIndicator": "LoadIndicator.SPINNER"
      }
    }
  },
  {
    "actionLabel": "Send Feedback",
    "onClick": {
      "openLink": {
        "url": "https://example.com/feedback"
      }
    }
  }
]
name

string

اسم البطاقة يُستخدَم كمعرِّف للبطاقة في التنقّل بين البطاقات.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

displayStyle

enum (DisplayStyle)

في إضافات Google Workspace، تُستخدَم لضبط سمات العرض الخاصة بملف peekCardHeader.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

peekCardHeader

object (CardHeader)

عند عرض محتوى سياقي، يعمل عنوان البطاقة المخصّصة للاطّلاع على المحتوى كعنصر نائب حتى يتمكّن المستخدم من التنقّل إلى الأمام بين بطاقات الصفحة الرئيسية والبطاقات السياقية.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

CardHeader

يمثّل عنوان بطاقة. للحصول على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على إضافة عنوان.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "title": string,
  "subtitle": string,
  "imageType": enum (ImageType),
  "imageUrl": string,
  "imageAltText": string
}
الحقول
title

string

مطلوب. عنوان عنوان البطاقة. يكون للعنوان ارتفاع ثابت: إذا تم تحديد عنوان وعنوان فرعي، يشغل كل منهما سطرًا واحدًا. إذا تم تحديد العنوان فقط، سيشغل كلا السطرين.

subtitle

string

العنوان الفرعي لعنوان البطاقة إذا تم تحديدها، تظهر في سطر مستقل أسفل title.

imageType

enum (ImageType)

الشكل المستخدَم لاقتصاص الصورة

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

imageUrl

string

عنوان URL لبروتوكول HTTPS للصورة في عنوان البطاقة.

imageAltText

string

النص البديل لهذه الصورة الذي يُستخدَم لتسهيل الاستخدام

ImageType

الشكل المستخدَم لاقتصاص الصورة

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
SQUARE القيمة التلقائية يطبِّق قناعًا مربّعًا على الصورة. على سبيل المثال، تصبح الصورة التي تبلغ نسبة عرضها إلى ارتفاعها 4×3 بنسبة 3×3.
CIRCLE يطبّق قناعًا دائريًا على الصورة. على سبيل المثال، تصبح الصورة التي تبلغ نسبتها ‎4×3 دائرة قطرها 3.

القسم

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

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "header": string,
  "widgets": [
    {
      object (Widget)
    }
  ],
  "collapsible": boolean,
  "uncollapsibleWidgetsCount": integer,
  "collapseControl": {
    object (CollapseControl)
  }
}
الحقول
header

string

النص الذي يظهر في أعلى قسم يتيح استخدام نص منسق بتنسيق HTML بسيط. لمزيد من المعلومات عن تنسيق النص، يُرجى الاطّلاع على مقالتَي: تنسيق النص في تطبيقات Google Chat و تنسيق النص في إضافات Google Workspace.

widgets[]

object (Widget)

جميع التطبيقات المصغّرة في القسم يجب أن تحتوي على تطبيق مصغّر واحد على الأقل.

collapsible

boolean

يشير إلى ما إذا كان هذا القسم قابلاً للتصغير.

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

لتحديد التطبيقات المصغّرة المخفية، حدِّد uncollapsibleWidgetsCount.

uncollapsibleWidgetsCount

integer

عدد التطبيقات المصغّرة غير القابلة للطي التي تظل مرئية حتى عند تصغير قسم

على سبيل المثال، عندما يحتوي القسم على خمسة تطبيقات مصغّرة ويتم ضبط الرمز uncollapsibleWidgetsCount على 2، يتم دائمًا عرض التطبيقَين المصغّرَين الأولَين ويتم تصغير الثلاثة الأخيرة تلقائيًا. لا يتمّ احتساب uncollapsibleWidgetsCount إلا عندما يكون collapsible true.

collapseControl

object (CollapseControl)

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

أداة

تتألّف كل بطاقة من تطبيقات مصغّرة.

التطبيق المصغّر هو كائن مركب يمكن أن يمثّل أحد أنواع النصوص أو الصور أو الأزرار أو أنواع الكائنات الأخرى.

تمثيل JSON
{
  "horizontalAlignment": enum (HorizontalAlignment),

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "divider": {
    object (Divider)
  },
  "grid": {
    object (Grid)
  },
  "columns": {
    object (Columns)
  },
  "carousel": {
    object (Carousel)
  },
  "chipList": {
    object (ChipList)
  }
  // End of list of possible types for union field data.
}
الحقول
horizontalAlignment

enum (HorizontalAlignment)

تُحدِّد ما إذا كان يجب محاذاة التطبيقات المصغّرة على يمين أو يسار أو وسط عمود.

حقل الربط data. لا يمكن أن يتضمّن التطبيق المصغّر سوى أحد العناصر التالية. يمكنك استخدام حقول تطبيقات مصغّرة متعددة لعرض المزيد من العناصر. data يمكن أن يكون أحد القيم التالية فقط:
textParagraph

object (TextParagraph)

لعرض فقرة نصية يتيح استخدام نص منسق بتنسيق HTML بسيط. لمزيد من المعلومات عن تنسيق النص، يُرجى الاطّلاع على مقالتَي: تنسيق النص في تطبيقات Google Chat و تنسيق النص في إضافات Google Workspace.

على سبيل المثال، ينشئ ملف JSON التالي نصًا بخط عريض:

"textParagraph": {
  "text": "  <b>bold text</b>"
}
image

object (Image)

لعرض صورة

على سبيل المثال، ينشئ ملف JSON التالي صورة تتضمّن نصًا بديلاً:

"image": {
  "imageUrl":
  "https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png",
  "altText": "Chat app avatar"
}
decoratedText

object (DecoratedText)

تعرِض هذه السمة عنصر نص مزخرف.

على سبيل المثال، ينشئ ملف JSON التالي تطبيقًا مصغّرًا للنص المزخرف يعرض عنوان البريد الإلكتروني:

"decoratedText": {
  "icon": {
    "knownIcon": "EMAIL"
  },
  "topLabel": "Email Address",
  "text": "sasha@example.com",
  "bottomLabel": "This is a new Email address!",
  "switchControl": {
    "name": "has_send_welcome_email_to_sasha",
    "selected": false,
    "controlType": "CHECKBOX"
  }
}
buttonList

object (ButtonList)

قائمة بالأزرار

على سبيل المثال، ينشئ ملف JSON التالي زرَّين. الأول هو زر نصي أزرق والثاني هو زر صورة يفتح رابطًا:

"buttonList": {
  "buttons": [
    {
      "text": "Edit",
      "color": {
        "red": 0,
        "green": 0,
        "blue": 1,
      },
      "disabled": true,
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}
textInput

object (TextInput)

تعرِض هذه السمة مربّع نص يمكن للمستخدمين الكتابة فيه.

على سبيل المثال، ينشئ ملف JSON التالي إدخال نص لعنوان بريد إلكتروني:

"textInput": {
  "name": "mailing_address",
  "label": "Mailing Address"
}

في ما يلي مثال آخر: ينشئ ملف JSON التالي إدخال نص لإحدى لغات البرمجة مع اقتراحات ثابتة:

"textInput": {
  "name": "preferred_programing_language",
  "label": "Preferred Language",
  "initialSuggestions": {
    "items": [
      {
        "text": "C++"
      },
      {
        "text": "Java"
      },
      {
        "text": "JavaScript"
      },
      {
        "text": "Python"
      }
    ]
  }
}
selectionInput

object (SelectionInput)

تعرِض عنصر تحكّم في الاختيار يتيح للمستخدمين اختيار العناصر. يمكن أن تكون عناصر التحكّم في الاختيار مربّعات اختيار أو أزرار اختيار أو مفاتيح تبديل أو قوائم منسدلة.

على سبيل المثال، ينشئ ملف JSON التالي قائمة منسدلة تتيح للمستخدمين اختيار حجم:

"selectionInput": {
  "name": "size",
  "label": "Size"
  "type": "DROPDOWN",
  "items": [
    {
      "text": "S",
      "value": "small",
      "selected": false
    },
    {
      "text": "M",
      "value": "medium",
      "selected": true
    },
    {
      "text": "L",
      "value": "large",
      "selected": false
    },
    {
      "text": "XL",
      "value": "extra_large",
      "selected": false
    }
  ]
}
dateTimePicker

object (DateTimePicker)

تعرِض هذه السمة تطبيقًا مصغّرًا يتيح للمستخدمين إدخال تاريخ أو وقت أو تاريخ ووقت.

على سبيل المثال، ينشئ تنسيق JSON التالي أداة اختيار تاريخ ووقت لجدولة موعد:

"dateTimePicker": {
  "name": "appointment_time",
  "label": "Book your appointment at:",
  "type": "DATE_AND_TIME",
  "valueMsEpoch": "796435200000"
}
divider

object (Divider)

تعرِض هذه السمة خطًا أفقيًا بين التطبيقات المصغّرة.

على سبيل المثال، ينشئ ملف JSON التالي مُقسّمًا:

"divider": {
}
grid

object (Grid)

تعرِض شبكة تتضمّن مجموعة من العناصر.

تتيح الشبكة استخدام أي عدد من الأعمدة والعناصر. يتم تحديد عدد الصفوف من خلال الحدود العليا لعدد السلع مقسومًا على عدد الأعمدة. تحتوي الشبكة التي تتضمّن 10 عناصر وعمودَين على 5 صفوف. تحتوي الشبكة التي تتضمّن 11 عنصرًا وعمودَين على 6 صفوف.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

على سبيل المثال، ينشئ ملف JSON التالي شبكة من عمودَين يتضمّن عنصرًا واحدًا:

"grid": {
  "title": "A fine collection of items",
  "columnCount": 2,
  "borderStyle": {
    "type": "STROKE",
    "cornerRadius": 4
  },
  "items": [
    {
      "image": {
        "imageUri": "https://www.example.com/image.png",
        "cropStyle": {
          "type": "SQUARE"
        },
        "borderStyle": {
          "type": "STROKE"
        }
      },
      "title": "An item",
      "textAlignment": "CENTER"
    }
  ],
  "onClick": {
    "openLink": {
      "url": "https://www.example.com"
    }
  }
}
columns

object (Columns)

يتم عرض ما يصل إلى عمودَين.

لتضمين أكثر من عمودَين أو لاستخدام الصفوف، استخدِم عنصر التحكّم Grid.

على سبيل المثال، ينشئ ملف JSON التالي عمودَين يحتوي كل منهما على فقرات نصية:

"columns": {
  "columnItems": [
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "First column text paragraph"
          }
        }
      ]
    },
    {
      "horizontalSizeStyle": "FILL_AVAILABLE_SPACE",
      "horizontalAlignment": "CENTER",
      "verticalAlignment": "CENTER",
      "widgets": [
        {
          "textParagraph": {
            "text": "Second column text paragraph"
          }
        }
      ]
    }
  ]
}
carousel

object (Carousel)

تحتوي لوحة العرض الدوّارة على مجموعة من التطبيقات المصغّرة المُدمجة. على سبيل المثال، هذا تمثيل بتنسيق JSON للوحة عرض دوّارة تحتوي على فقرتَين نصيتين.

{
  "widgets": [
    {
      "textParagraph": {
        "text": "First text paragraph in the carousel."
      }
    },
    {
      "textParagraph": {
        "text": "Second text paragraph in the carousel."
      }
    }
  ]
}
chipList

object (ChipList)

قائمة بشرائح

على سبيل المثال، ينشئ ملف JSON التالي شريحةَين. الأول هو شريحة نصية والثاني هو شريحة رمز تفتح رابطًا:

"chipList": {
  "chips": [
    {
      "text": "Edit",
      "disabled": true,
    },
    {
      "icon": {
        "knownIcon": "INVITE",
        "altText": "check calendar"
      },
      "onClick": {
        "openLink": {
          "url": "https://example.com/calendar"
        }
      }
    }
  ]
}

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

TextParagraph

فقرة من النص تتيح التنسيق للحصول على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على إضافة فقرة من النص المنسَّق. لمزيد من المعلومات عن تنسيق النصوص، يُرجى الاطّلاع على مقالتَي تنسيق النصوص في تطبيقات Google Chat وتنسيق النصوص في إضافات Google Workspace.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "text": string,
  "maxLines": integer
}
الحقول
text

string

النص الذي يظهر في التطبيق المصغّر

maxLines

integer

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

القيمة التلقائية هي 0، وفي هذه الحالة يتم عرض كل السياق. ويتم تجاهل القيم السلبية. تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

صورة

صورة يتم تحديدها من خلال عنوان URL ويمكن أن تتضمّن إجراءً بعنوان onClick. على سبيل المثال، يُرجى الاطّلاع على مقالة إضافة صورة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "imageUrl": string,
  "onClick": {
    object (OnClick)
  },
  "altText": string
}
الحقول
imageUrl

string

عنوان URL لبروتوكول HTTPS الذي يستضيف الصورة

على سبيل المثال:

https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png
onClick

object (OnClick)

عندما ينقر المستخدِم على الصورة، يؤدي النقر إلى بدء هذا الإجراء.

altText

string

النص البديل لهذه الصورة الذي يُستخدَم لتسهيل الاستخدام

OnClick

يمثّل كيفية الردّ عندما ينقر المستخدِمون على عنصر تفاعلي في البطاقة، مثل زر.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{

  // Union field data can be only one of the following:
  "action": {
    object (Action)
  },
  "openLink": {
    object (OpenLink)
  },
  "openDynamicLinkAction": {
    object (Action)
  },
  "card": {
    object (Card)
  },
  "overflowMenu": {
    object (OverflowMenu)
  }
  // End of list of possible types for union field data.
}
الحقول

حقل الربط data.

data يمكن أن يكون أحد القيم التالية فقط:

action

object (Action)

إذا تم تحديده، يتم بدء إجراء باستخدام onClick.

card

object (Card)

يتمّ دفع بطاقة جديدة إلى حزمة البطاقات بعد النقر عليها إذا تمّ تحديد ذلك.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

overflowMenu

object (OverflowMenu)

في حال تحديده، يؤدي onClick إلى فتح قائمة سياقية. تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

الإجراء

إجراء يصف السلوك عند إرسال النموذج على سبيل المثال، يمكنك استدعاء نص برمجي في Apps Script لمعالجة النموذج. في حال بدء الإجراء، يتم إرسال قيم النموذج إلى الخادم.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "function": string,
  "parameters": [
    {
      object (ActionParameter)
    }
  ],
  "loadIndicator": enum (LoadIndicator),
  "persistValues": boolean,
  "interaction": enum (Interaction),
  "requiredWidgets": [
    string
  ],
  "allWidgetsAreRequired": boolean
}
الحقول
function

string

دالة مخصّصة للتنفيذ عند النقر على العنصر الذي يحتوي على العنصر المعنيّ أو تفعيله بأي طريقة أخرى

للاطّلاع على أمثلة على الاستخدام، يمكنك الاطّلاع على قراءة بيانات النموذج.

parameters[]

object (ActionParameter)

قائمة بمَعلمات الإجراءات

loadIndicator

enum (LoadIndicator)

تُحدِّد مؤشر التحميل الذي يعرضه الإجراء أثناء إجراء الطلب.

persistValues

boolean

تشير إلى ما إذا كانت قيم النموذج تظل محفوظة بعد الإجراء. القيمة التلقائية هي false.

إذا كانت القيمة true، تظلّ قيم النموذج محفوظة بعد بدء الإجراء. للسماح للمستخدم بإجراء تغييرات أثناء معالجة الإجراء، اضبط LoadIndicator على NONE. بالنسبة إلى رسائل البطاقات في تطبيقات Chat، عليك أيضًا ضبط ResponseType الإجراء على UPDATE_MESSAGE واستخدام cardId نفسه من البطاقة التي تحتوي على الإجراء.

إذا كانت القيمة false، يتم محو قيم النموذج عند بدء الإجراء. لمنع المستخدم من إجراء تغييرات أثناء معالجة الإجراء، اضبط LoadIndicator على SPINNER.

interaction

enum (Interaction)

اختيارية: مطلوب عند فتح مربّع حوار.

الإجراءات التي يجب اتّخاذها استجابةً للتفاعل مع مستخدم، مثل النقر على زر في رسالة بطاقة

إذا لم يتم تحديد الإجراء، يستجيب التطبيق من خلال تنفيذ action كالمعتاد، مثل فتح رابط أو تشغيل دالة.

من خلال تحديد interaction، يمكن للتطبيق الردّ بطرق تفاعلية خاصة. على سبيل المثال، من خلال ضبط قيمة interaction على OPEN_DIALOG، يمكن للتطبيق فتح مربّع حوار. عند تحديد هذه السمة، لا يظهر مؤشر التحميل. إذا تم تحديدها لإضافة، تتم إزالة البطاقة بالكامل ولا يتم عرض أي شيء في البرنامج.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

requiredWidgets[]

string

اختياري. املأ هذه القائمة بأسماء التطبيقات المصغّرة التي يحتاج إليها هذا الإجراء لإرسال بيانات صالحة.

إذا لم تكن التطبيقات المصغّرة المدرَجة هنا لها قيمة عند تنفيذ هذا الإجراء، يتم إيقاف إرسال النموذج.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

allWidgetsAreRequired

boolean

اختياري. إذا كانت هذه القيمة صحيحة، يعني ذلك أنّ جميع التطبيقات المصغّرة مطلوبة لهذا الإجراء.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

ActionParameter

قائمة بمَعلمات السلاسل التي يجب تقديمها عند استدعاء طريقة الإجراء على سبيل المثال، يمكنك استخدام ثلاثة أزرار لتأجيل التنبيه: تأجيل الآن أو تأجيل لمدة يوم واحد أو تأجيل في الأسبوع القادم. يمكنك استخدام action method = snooze()، مع تمرير نوع الغفوة ووقت الغفوة في قائمة مَعلمات السلاسل.

لمزيد من المعلومات، يُرجى الاطّلاع على CommonEventObject.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "key": string,
  "value": string
}
الحقول
key

string

اسم المَعلمة لنص الإجراء

value

string

قيمة المَعلمة

LoadIndicator

تُحدِّد مؤشر التحميل الذي يعرضه الإجراء أثناء إجراء الطلب.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
SPINNER تعرِض هذه العلامة عنصر تحميل دوّار للإشارة إلى أنّه يتم تحميل المحتوى.
NONE لا يتم عرض أي محتوى.

التفاعل

اختيارية: مطلوب عند فتح مربّع حوار.

الإجراءات التي يجب اتّخاذها استجابةً للتفاعل مع مستخدم، مثل النقر على زر في رسالة بطاقة

في حال عدم تحديد الإجراء، يستجيب التطبيق من خلال تنفيذ action كالمعتاد، مثل فتح رابط أو تشغيل دالة.

من خلال تحديد interaction، يمكن للتطبيق الردّ بطرق تفاعلية خاصة. على سبيل المثال، من خلال ضبط قيمة interaction على OPEN_DIALOG، يمكن للتطبيق فتح مربّع حوار.

عند تحديد هذه السمة، لا يظهر مؤشر التحميل. إذا تم تحديدها لإضافة، تتم إزالة البطاقة بالكامل ولا يتم عرض أي شيء في البرنامج.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

عمليات التعداد
INTERACTION_UNSPECIFIED القيمة التلقائية يتم تنفيذ action كالمعتاد.
OPEN_DIALOG

يفتح مربّع حوار، وهو واجهة مستندة إلى البطاقات وتكون في نافذة تستخدمها تطبيقات Chat للتفاعل مع المستخدمين.

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

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

OpenAs

عندما يفتح إجراء OnClick رابطًا، يمكن للعميل فتحه إما كنافذة بالحجم الكامل (إذا كان هذا هو الإطار المستخدَم من قِبل العميل) أو كعنصر تراكبي (مثل نافذة منبثقة). يعتمد التنفيذ على إمكانات نظام العميل الأساسي، وقد يتم تجاهل القيمة المحدّدة إذا لم يكن العميل متوافقًا معها. FULL_SIZE متاح لجميع العملاء.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

عمليات التعداد
FULL_SIZE يتم فتح الرابط كنافذة بالحجم الكامل (إذا كان هذا هو الإطار الذي يستخدمه العميل).
OVERLAY يتم فتح الرابط كعنصر تراكبي، مثل نافذة منبثقة.

OnClose

الإجراء الذي يتّخذه العميل عند إغلاق رابط تم فتحه من خلال إجراء OnClick.

يعتمد التنفيذ على إمكانات النظام الأساسي للعملاء. على سبيل المثال، قد يفتح متصفّح ويب رابطًا في نافذة منبثقة باستخدام معالج OnClose.

إذا تم ضبط معالِجَي OnOpen و OnClose ، وتعذّر على منصة العميل إتاحة القيمتَين، تكون الأولوية لمعالج OnClose.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

عمليات التعداد
NOTHING القيمة التلقائية لا تتم إعادة تحميل البطاقة ولا يحدث أي شيء.
RELOAD

تُعيد تحميل البطاقة بعد إغلاق نافذة الطفل.

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

OverflowMenu

تطبيق مصغّر يعرض قائمة منبثقة تتضمّن إجراءً واحدًا أو أكثر يمكن للمستخدمين تنفيذه على سبيل المثال، عرض إجراءات غير أساسية في بطاقة يمكنك استخدام هذه الأداة المصغّرة عندما لا تتناسب الإجراءات مع المساحة المتاحة. لاستخدام هذا التطبيق المصغّر، حدِّده في الإجراء OnClick للتطبيقات المصغّرة المتوافقة معه. على سبيل المثال، في Button.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "items": [
    {
      object (OverflowMenuItem)
    }
  ]
}
الحقول
items[]

object (OverflowMenuItem)

مطلوب. قائمة خيارات القائمة

OverflowMenuItem

خيار يمكن للمستخدمين استخدامه في قائمة الخيارات الإضافية

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "startIcon": {
    object (Icon)
  },
  "text": string,
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean
}
الحقول
startIcon

object (Icon)

الرمز المعروض أمام النص

text

string

مطلوب. النص الذي يحدّد السلعة أو يصفّها للمستخدمين

onClick

object (OnClick)

مطلوب. الإجراء الذي يتم تنفيذه عند اختيار خيار من القائمة لا يمكن أن يحتوي OnClick هذا على OverflowMenu، ويتم إسقاط أي OverflowMenu محدّد ويتم إيقاف عنصر القائمة.

disabled

boolean

ما إذا كان خيار القائمة غير مفعَّل القيمة التلقائية هي false.

الرمز

رمز معروض في تطبيق مصغّر على بطاقة للحصول على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على إضافة رمز.

تتيح استخدام رموزم مضمّنة و مخصّصة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "altText": string,
  "imageType": enum (ImageType),

  // Union field icons can be only one of the following:
  "knownIcon": string,
  "iconUrl": string,
  "materialIcon": {
    object (MaterialIcon)
  }
  // End of list of possible types for union field icons.
}
الحقول
altText

string

اختيارية: وصف للرمز المستخدَم لتسهيل الاستخدام إذا لم يتم تحديد قيمة، يتم تقديم القيمة التلقائية Button. كأفضل ممارسة، يجب ضبط وصف مفيد لما يعرضه الرمز، ووظيفته، إن أمكن. على سبيل المثال، A user's account portrait أو Opens a new browser tab and navigates to the Google Chat developer documentation at https://developers.google.com/workspace/chat.

إذا تم ضبط الرمز في Button، يظهر altText كنص مساعد عندما يمرّر المستخدم مؤشّر الماوس فوق الزر. ومع ذلك، إذا كان الزر يضبط أيضًا text، يتم تجاهل altText الرمز.

imageType

enum (ImageType)

نمط الاقتصاص المُطبَّق على الصورة في بعض الحالات، يؤدي تطبيق عملية اقتصاص CIRCLE إلى رسم الصورة بحجم أكبر من الرمز المضمّن.

حقل الربط icons. الرمز المعروض في التطبيق المصغّر على البطاقة icons يمكن أن يكون أحد القيم التالية فقط:
knownIcon

string

عرض أحد الرموز المضمّنة التي يوفّرها Google Workspace

على سبيل المثال، لعرض رمز طائرة، حدِّد AIRPLANE. بالنسبة إلى الحافلة، حدِّد BUS.

للحصول على قائمة كاملة بالرموز المتوافقة، راجِع الرموز المضمّنة.

iconUrl

string

عرض رمز مخصّص مستضاف على عنوان URL يستخدم HTTPS

على سبيل المثال:

"iconUrl":
"https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png"

تشمل أنواع الملفات المتوافقة .png و .jpg.

materialIcon

object (MaterialIcon)

اعرض أحد رموز Google Material.

على سبيل المثال، لعرض رمز مربّع اختيار، استخدِم

"materialIcon": {
  "name": "check_box"
}

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

MaterialIcon

رمز Google Material Icon الذي يتضمّن أكثر من 2500 خيار

على سبيل المثال، لعرض رمز مربّع اختيار بدرجة ووزن مخصّصَين، اكتب ما يلي:

{
  "name": "check_box",
  "fill": true,
  "weight": 300,
  "grade": -25
}

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "name": string,
  "fill": boolean,
  "weight": integer,
  "grade": integer
}
الحقول
name

string

اسم الرمز المحدّد في رمز Google Material، على سبيل المثال، check_box. يتم تجاهل أي أسماء غير صالحة واستبدالها بسلسلة فارغة، ما يؤدي إلى تعذُّر عرض الرمز.

fill

boolean

ما إذا كان سيتم عرض الرمز ممتلئًا القيمة التلقائية هي خطأ.

لمعاينة إعدادات الرموز المختلفة، انتقِل إلى رموز خطوط Google واضبط الإعدادات ضمن تخصيص.

weight

integer

كثافة خط الرمز يمكنك الاختيار من بين {100, 200, 300, 400, 500, 600, 700}. إذا لم تكن هذه السمة متوفّرة، تكون القيمة التلقائية هي 400. إذا تم تحديد أي قيمة أخرى، يتم استخدام القيمة التلقائية.

لمعاينة إعدادات الرموز المختلفة، انتقِل إلى رموز خطوط Google واضبط الإعدادات ضمن تخصيص.

grade

integer

يؤثران في سمك الرمز. إنّ تعديلات الدرجة أكثر دقة من تعديلات الوزن ولها تأثير بسيط في حجم الرمز. يمكنك الاختيار من بين {-25, 0, 200}. إذا لم تكن متوفّرة، تكون القيمة التلقائية هي 0. إذا تم تحديد أي قيمة أخرى، يتم استخدام القيمة التلقائية.

لمعاينة إعدادات الرموز المختلفة، انتقِل إلى رموز خطوط Google واضبط الإعدادات ضمن تخصيص.

DecoratedText

تطبيق مصغّر يعرض نصًا مع زخارف اختيارية، مثل تصنيف أعلى النص أو أسفله أو رمز أمام النص أو تطبيق مصغّر للاختيار أو زر بعد النص للاطّلاع على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على مقالة: عرض نص مع نص زخرفي.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "icon": {
    object (Icon)
  },
  "startIcon": {
    object (Icon)
  },
  "topLabel": string,
  "text": string,
  "wrapText": boolean,
  "bottomLabel": string,
  "onClick": {
    object (OnClick)
  },

  // Union field control can be only one of the following:
  "button": {
    object (Button)
  },
  "switchControl": {
    object (SwitchControl)
  },
  "endIcon": {
    object (Icon)
  }
  // End of list of possible types for union field control.
}
الحقول
icon
(deprecated)

object (Icon)

تم إيقافه نهائيًا وحلّ محلّه startIcon.

startIcon

object (Icon)

الرمز المعروض أمام النص

topLabel

string

النص الذي يظهر فوق text. يتم اقتطاعها دائمًا.

text

string

مطلوب. النص الأساسي

تتيح التنسيق البسيط. لمزيد من المعلومات عن تنسيق النص، يُرجى الاطّلاع على مقالتَي: تنسيق النص في تطبيقات Google Chat و تنسيق النص في إضافات Google Workspace.

wrapText

boolean

إعداد التفاف النص إذا كان true، يتمّ عرض النص على عدة أسطر. وإلا، يتم اقتطاع النص.

ينطبق هذا التغيير على text فقط، وليس على topLabel و bottomLabel.

bottomLabel

string

النص الذي يظهر أدناه text. يتم إغلاق المحتوى دائمًا.

onClick

object (OnClick)

يتم بدء هذا الإجراء عندما ينقر المستخدمون على topLabel أو bottomLabel.

حقل الربط control. زر أو مفتاح تبديل أو مربّع اختيار أو صورة تظهر على يسار النص في أداة decoratedText control يمكن أن يكون أحد القيم التالية فقط:
button

object (Button)

زر يمكن للمستخدم النقر عليه لبدء إجراء

switchControl

object (SwitchControl)

تطبيق مصغّر للتبديل يمكن للمستخدم النقر عليه لتغيير حالته وتنفيذ إجراء.

endIcon

object (Icon)

رمز يظهر بعد النص

تتيح استخدام رموزم مضمّنة و مخصّصة.

زرّ

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

لجعل صورة زرًا يمكن النقر عليه، حدِّد رمز Image (وليس رمز ImageComponent) واضبط إجراء onClick.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "text": string,
  "icon": {
    object (Icon)
  },
  "color": {
    object (Color)
  },
  "onClick": {
    object (OnClick)
  },
  "disabled": boolean,
  "altText": string,
  "type": enum (Type)
}
الحقول
text

string

النص المعروض داخل الزر

icon

object (Icon)

رمز معروض داخل الزر إذا تم ضبط كل من icon و text ، سيظهر الرمز قبل النص.

color

object (Color)

اختيارية: لون الزر في حال ضبطه، يتم ضبط الزر type على FILLED ويتم ضبط لون الحقلَين text و icon على لون متناقض لتحسين مقروئية النص. على سبيل المثال، إذا تم ضبط لون الزر على الأزرق، سيتم ضبط أي نص أو رموز في الزر على الأبيض.

لضبط لون الزر، حدِّد قيمة للحقول red، green، blue. يجب أن تكون القيمة عددًا عشريًا بين 0 و1 استنادًا إلى قيمة لون RGB، حيث يمثّل 0 (0/255) عدم توفّر اللون ويمثّل 1 (255/255) الحد الأقصى لكثافة اللون.

على سبيل المثال، يضبط الرمز البرمجي التالي اللون على الأحمر بأعلى كثافة له:

"color": {
   "red": 1,
   "green": 0,
   "blue": 0,
}

لا يتوفّر الحقل alpha للون الزر. يتم تجاهل هذا الحقل في حال تحديده.

onClick

object (OnClick)

مطلوب. الإجراء الذي سيتم تنفيذه عندما ينقر المستخدم على الزر، مثل فتح رابط تشعبي أو تشغيل دالة مخصّصة.

disabled

boolean

إذا كان القيمة هي true، يتم عرض الزر في حالة غير نشطة ولا يستجيب لإجراءات المستخدم.

altText

string

النص البديل المستخدَم لتحسين إمكانية الاستخدام

اضبط نصًا وصفيًا يُعلِم المستخدمين بوظائف الزر. على سبيل المثال، إذا كان الزر يفتح رابطًا تشعبيًا، يمكنك كتابة: "يفتح علامة تبويب جديدة في المتصفّح وينتقل إلى مستندات المطوّرين الخاصة بخدمة Google Chat على الرابط https://developers.google.com/workspace/chat".

type

enum (Type)

اختيارية: نوع الزر في حال عدم ضبط نوع الزر، سيتم ضبطه تلقائيًا على OUTLINED. في حال ضبط الحقل color ، يتم فرض نوع الزر على FILLED ويتم تجاهل أي قيمة تم ضبطها لهذا الحقل.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

اللون

يمثّل لونًا في مساحة ألوان RGBA. تم تصميم هذا التمثيل لتسهيل التحويل من تمثيلات الألوان وإليها بلغات مختلفة بدلاً من جعله أكثر كثافة. على سبيل المثال، يمكن تقديم حقول هذا التمثيل بسهولة إلى طريقة الإنشاء الخاصة بـ java.awt.Color في Java، ويمكن أيضًا تقديمها بسهولة إلى +colorWithRed:green:blue:alpha في UIColor في iOS، ويمكن تنسيقها بسهولة إلى سلسلة rgba() في CSS باستخدام القليل من الجهد في JavaScript.

لا تحتوي صفحة المرجع هذه على معلومات عن مساحة الألوان المطلقة التي يجب استخدامها لتفسير قيمة RGB، مثل sRGB وAdobe RGB وDCI-P3 وBT.2020. من المفترض أن تفترض التطبيقات تلقائيًا مساحة الألوان sRGB.

عند الحاجة إلى تحديد ما إذا كان اللونان متطابقَين، تتعامل عمليات التنفيذ مع اللونَين على أنّهما متطابقَين إذا كانت قيم كل من الأحمر والأخضر والأزرق ودرجة الشفافية تختلف عن بعضها بحد أقصى 1e-5، ما لم يتم توثيق خلاف ذلك.

مثال (Java):

 import com.google.type.Color;

 // ...
 public static java.awt.Color fromProto(Color protocolor) {
   float alpha = protocolor.hasAlpha()
       ? protocolor.getAlpha().getValue()
       : 1.0;

   return new java.awt.Color(
       protocolor.getRed(),
       protocolor.getGreen(),
       protocolor.getBlue(),
       alpha);
 }

 public static Color toProto(java.awt.Color color) {
   float red = (float) color.getRed();
   float green = (float) color.getGreen();
   float blue = (float) color.getBlue();
   float denominator = 255.0;
   Color.Builder resultBuilder =
       Color
           .newBuilder()
           .setRed(red / denominator)
           .setGreen(green / denominator)
           .setBlue(blue / denominator);
   int alpha = color.getAlpha();
   if (alpha != 255) {
     result.setAlpha(
         FloatValue
             .newBuilder()
             .setValue(((float) alpha) / denominator)
             .build());
   }
   return resultBuilder.build();
 }
 // ...

مثال (iOS / Obj-C):

 // ...
 static UIColor* fromProto(Color* protocolor) {
    float red = [protocolor red];
    float green = [protocolor green];
    float blue = [protocolor blue];
    FloatValue* alpha_wrapper = [protocolor alpha];
    float alpha = 1.0;
    if (alpha_wrapper != nil) {
      alpha = [alpha_wrapper value];
    }
    return [UIColor colorWithRed:red green:green blue:blue alpha:alpha];
 }

 static Color* toProto(UIColor* color) {
     CGFloat red, green, blue, alpha;
     if (![color getRed:&red green:&green blue:&blue alpha:&alpha]) {
       return nil;
     }
     Color* result = [[Color alloc] init];
     [result setRed:red];
     [result setGreen:green];
     [result setBlue:blue];
     if (alpha <= 0.9999) {
       [result setAlpha:floatWrapperWithValue(alpha)];
     }
     [result autorelease];
     return result;
}
// ...

مثال (JavaScript):

// ...

var protoToCssColor = function(rgb_color) {
   var redFrac = rgb_color.red || 0.0;
   var greenFrac = rgb_color.green || 0.0;
   var blueFrac = rgb_color.blue || 0.0;
   var red = Math.floor(redFrac * 255);
   var green = Math.floor(greenFrac * 255);
   var blue = Math.floor(blueFrac * 255);

   if (!('alpha' in rgb_color)) {
      return rgbToCssColor(red, green, blue);
   }

   var alphaFrac = rgb_color.alpha.value || 0.0;
   var rgbParams = [red, green, blue].join(',');
   return ['rgba(', rgbParams, ',', alphaFrac, ')'].join('');
};

var rgbToCssColor = function(red, green, blue) {
  var rgbNumber = new Number((red << 16) | (green << 8) | blue);
  var hexString = rgbNumber.toString(16);
  var missingZeros = 6 - hexString.length;
  var resultBuilder = ['#'];
  for (var i = 0; i < missingZeros; i++) {
     resultBuilder.push('0');
  }
  resultBuilder.push(hexString);
  return resultBuilder.join('');
};

// ...
تمثيل JSON
{
  "red": number,
  "green": number,
  "blue": number,
  "alpha": number
}
الحقول
red

number

مقدار اللون الأحمر في اللون كقيمة في النطاق [0, 1]

green

number

مقدار اللون الأخضر في اللون كقيمة في النطاق [0, 1].

blue

number

مقدار اللون الأزرق في اللون كقيمة في النطاق [0, 1]

alpha

number

جزء هذا اللون الذي يجب تطبيقه على البكسل. وهذا يعني أنّ لون البكسل النهائي يتم تحديده من خلال المعادلة التالية:

pixel color = alpha * (this color) + (1.0 - alpha) * (background color)

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

النوع

اختيارية: نوع الزر في حال ضبط حقل color ، يتم فرض type على FILLED.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

عمليات التعداد
TYPE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
OUTLINED الأزرار المحدَّدة الجوانب هي أزرار ذات أهمية متوسطة. وعادةً ما تحتوي على إجراءات مهمة، ولكنها ليست الإجراء الأساسي في تطبيق Chat أو إحدى الإضافات.
FILLED يحتوي الزرّ المعبأ على حاوية بلون خالص. ويُعدّ هذا اللون الأكثر تأثيرًا من الناحية المرئية، ويُنصح به للإجراءات المهمة والأساسية في تطبيق Chat أو إحدى الإضافات.
FILLED_TONAL يُعدّ الزرّ المعبّأ بالألوان المتجانسة خيارًا وسطًا بديلاً بين الأزرار المعبّأة والمخطّطة. وهي مفيدة في السياقات التي يتطلب فيها زر ذو أولوية أقل تركيزًا أكبر قليلاً مما قد يقدّمه زر مخطّط.
BORDERLESS لا يحتوي الزر على حاوية غير مرئية في حالته التلقائية. ويتم استخدامه غالبًا للإجراءات ذات الأولوية الأدنى، خاصةً عند عرض خيارات متعدّدة.

عنصر تحكم التبديل

إما مفتاح تبديل على غرار مفتاح التبديل أو مربّع اختيار داخل أداة decoratedText.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

لا تتوفّر هذه الميزة إلا في أداة decoratedText.

تمثيل JSON
{
  "name": string,
  "value": string,
  "selected": boolean,
  "onChangeAction": {
    object (Action)
  },
  "controlType": enum (ControlType)
}
الحقول
name

string

الاسم الذي يتم من خلاله التعرّف على التطبيق المصغّر للتبديل في حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

value

string

القيمة التي أدخلها المستخدِم، ويتم عرضها كجزء من حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

selected

boolean

عند true، يتم اختيار المفتاح.

onChangeAction

object (Action)

الإجراء الذي سيتم تنفيذه عند تغيير حالة مفتاح التبديل، مثل الدالة التي سيتم تنفيذها

controlType

enum (ControlType)

كيفية ظهور المفتاح في واجهة المستخدم

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

ControlType

كيفية ظهور المفتاح في واجهة المستخدم

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
SWITCH مفتاح تبديل بنمط الإيقاف/التفعيل
CHECKBOX تمّ إيقافه نهائيًا وحلّ محلّه CHECK_BOX.
CHECK_BOX مربّع اختيار

ButtonList

قائمة أزرار مرتبة أفقيًا للحصول على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على إضافة زر.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "buttons": [
    {
      object (Button)
    }
  ]
}
الحقول
buttons[]

object (Button)

صفيف من الأزرار

TextInput

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

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

استخدِم حقل إدخال نصيًا عندما تحتاج إلى جمع بيانات غير محدّدة أو مجردة من المستخدمين. لجمع بيانات محدّدة أو محدَّدة من المستخدمين، استخدِم التطبيق المصغّر SelectionInput.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "name": string,
  "label": string,
  "hintText": string,
  "value": string,
  "type": enum (Type),
  "onChangeAction": {
    object (Action)
  },
  "initialSuggestions": {
    object (Suggestions)
  },
  "autoCompleteAction": {
    object (Action)
  },
  "validation": {
    object (Validation)
  },
  "placeholderText": string
}
الحقول
name

string

الاسم الذي يتم من خلاله التعرّف على إدخال النص في حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

label

string

النص الذي يظهر أعلى حقل إدخال النص في واجهة المستخدم

حدِّد نصًا يساعد المستخدم في إدخال المعلومات التي يحتاجها تطبيقك. على سبيل المثال، إذا كنت تسأل عن اسم شخص معيّن، ولكنك تحتاج إلى اسمه العائلي على وجه التحديد، اكتب surname بدلاً من name.

مطلوبة إذا لم يتم تحديد hintText. وإلا، يكون اختياريًا.

hintText

string

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

مطلوبة إذا لم يتم تحديد label. وإلا، يكون اختياريًا.

value

string

القيمة التي أدخلها المستخدِم، ويتم عرضها كجزء من حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

type

enum (Type)

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

onChangeAction

object (Action)

الإجراءات التي يجب اتّخاذها عند حدوث تغيير في حقل إدخال النص على سبيل المثال، إضافة مستخدم إلى الحقل أو حذف نص.

تشمل أمثلة الإجراءات التي يجب اتّخاذها تنفيذ وظيفة مخصّصة أو فتح محادثة في Google Chat.

initialSuggestions

object (Suggestions)

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

على سبيل المثال، قد يقترح حقل إدخال نص للغة البرمجة Java وJavaScript وPython وC++. عندما يبدأ المستخدمون في كتابة Jav، يتم فلترة قائمة الاقتراحات لعرض Java و JavaScript فقط.

تساعد القيم المقترَحة المستخدمين في إدخال قيم يمكن لتطبيقك فهمها. عند الإشارة إلى JavaScript، قد يُدخل بعض المستخدمين javascript والبعض الآخر java script. يمكن أن يؤدي اقتراح محتوى JavaScript إلى توحيد كيفية تفاعل المستخدمين مع تطبيقك.

عند تحديده، يكون TextInput.type دائمًا SINGLE_LINE، حتى إذا تم ضبطه على MULTIPLE_LINE.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

autoCompleteAction

object (Action)

اختيارية: حدِّد الإجراء الذي سيتم اتّخاذه عندما يقدّم حقل إدخال النص اقتراحات للمستخدمين الذين يتفاعلون معه.

إذا لم يتم تحديدها، يتم ضبط الاقتراحات من قِبل initialSuggestions ويعالجها العميل.

يتّخذ التطبيق الإجراء المحدّد هنا، مثل تشغيل دالة مخصّصة، إذا تم تحديده.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

validation

object (Validation)

حدِّد عملية التحقّق اللازمة لحقل إدخال النص هذا.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

placeholderText

string

النص الذي يظهر في حقل إدخال النص عندما يكون الحقل فارغًا استخدِم هذا النص لطلب إدخال قيمة من المستخدمين. على سبيل المثال، Enter a number from 0 to 100.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

النوع

طريقة ظهور حقل إدخال نص في واجهة المستخدم على سبيل المثال، ما إذا كان حقل إدخال سطر واحد أو حقل إدخال سطور متعددة. في حال تحديد initialSuggestions ، يكون type دائمًا SINGLE_LINE، حتى إذا تم ضبطه على MULTIPLE_LINE.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
SINGLE_LINE يكون ارتفاع حقل إدخال النص ثابتًا لسطر واحد.
MULTIPLE_LINE يكون لـ "حقل إدخال النص" ارتفاع ثابت يتضمّن عدة أسطر.

RenderActions

مجموعة من تعليمات العرض التي تُطلب من البطاقة تنفيذ إجراء معيّن، أو تُطلب من التطبيق المضيف للإضافة أو تطبيق Chat تنفيذ إجراء خاص بالتطبيق

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

الحقول
action

Action

الإجراء

الحقول
navigations[]

Navigation

لدفع بطاقة أو عرضها أو تعديلها

إصدار المطوّرين: الإضافات في Google Chat

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

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

navigations: {
  pushCard: CARD
}

استبدِل البطاقة العلوية ببطاقة جديدة. بالنسبة إلى تطبيقات Chat، لا تتوفّر هذه الميزة إلا في صفحة تطبيقك الرئيسية.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

navigations: {
  updateCard: CARD
}

اقتراحات

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

على سبيل المثال، قد يقترح حقل إدخال نص للغة البرمجة Java وJavaScript وPython وC++. عندما يبدأ المستخدمون في كتابة Jav، يتم فلترة قائمة الاقتراحات لعرض Java و JavaScript.

تساعد القيم المقترَحة المستخدمين في إدخال قيم يمكن لتطبيقك فهمها. عند الإشارة إلى JavaScript، قد يُدخل بعض المستخدمين javascript بينما يُدخل آخرون java script. يمكن أن يؤدي اقتراح JavaScript إلى توحيد كيفية تفاعل المستخدمين مع تطبيقك.

عند تحديده، يكون TextInput.type دائمًا SINGLE_LINE، حتى إذا تم ضبطه على MULTIPLE_LINE.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "items": [
    {
      object (SuggestionItem)
    }
  ]
}
الحقول
items[]

object (SuggestionItem)

قائمة بالاقتراحات المستخدَمة لاقتراحات الإكمال التلقائي في حقول إدخال النصوص

SuggestionItem

قيمة مقترَحة واحدة يمكن للمستخدمين إدخالها في حقل إدخال نص

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{

  // Union field content can be only one of the following:
  "text": string
  // End of list of possible types for union field content.
}
الحقول

حقل الربط content.

content يمكن أن يكون أحد القيم التالية فقط:

text

string

قيمة الإدخال المقترَح في حقل إدخال نصي. ويعادل ذلك ما يُدخله المستخدمون بأنفسهم.

التحقّق من الصحة

يمثّل البيانات اللازمة للتحقّق من التطبيق المصغّر المُرفَق به.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "characterLimit": integer,
  "inputType": enum (InputType)
}
الحقول
characterLimit

integer

حدِّد عدد الأحرف المسموح به لأداة إدخال النص. يُرجى العِلم أنّه لا يتم استخدام هذه القيمة إلا لإدخال النصوص، ويتم تجاهلها في التطبيقات المصغّرة الأخرى.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

inputType

enum (InputType)

حدِّد نوع تطبيقات المصغّرات المخصّصة لإدخال البيانات.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

InputType

نوع التطبيق المصغّر للإدخال

عمليات التعداد
INPUT_TYPE_UNSPECIFIED نوع غير محدّد لا تستخدِم هذه الطريقة.
TEXT نص عادي يقبل جميع الأحرف
INTEGER قيمة عدد صحيح
FLOAT قيمة عائمة
EMAIL عنوان بريد إلكتروني
EMOJI_PICKER رمز تعبيري تم اختياره من أداة اختيار الرموز التعبيرية التي يوفّرها النظام

SelectionInput

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

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

لجمع بيانات غير محدّدة أو مجردة من المستخدمين، استخدِم تطبيقات المصغّرة TextInput.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "name": string,
  "label": string,
  "type": enum (SelectionType),
  "items": [
    {
      object (SelectionItem)
    }
  ],
  "onChangeAction": {
    object (Action)
  },
  "multiSelectMaxSelectedItems": integer,
  "multiSelectMinQueryLength": integer,
  "validation": {
    object (Validation)
  },

  // Union field multi_select_data_source can be only one of the following:
  "externalDataSource": {
    object (Action)
  },
  "platformDataSource": {
    object (PlatformDataSource)
  }
  // End of list of possible types for union field multi_select_data_source.
}
الحقول
name

string

مطلوب. الاسم الذي يحدِّد إدخال الاختيار في حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

label

string

النص الذي يظهر أعلى حقل إدخال الاختيار في واجهة المستخدم

حدِّد نصًا يساعد المستخدم في إدخال المعلومات التي يحتاجها تطبيقك. على سبيل المثال، إذا كان المستخدمون يختارون مدى إلحاح طلب العمل من قائمة منسدلة، قد يكون التصنيف "مدى إلحاح الطلب" أو "اختيار مدى إلحاح الطلب".

type

enum (SelectionType)

نوع العناصر التي يتم عرضها للمستخدمين في SelectionInput تطبيق مصغّر تتيح أنواع الاختيارات أنواعًا مختلفة من التفاعلات. على سبيل المثال، يمكن للمستخدمين اختيار مربّع اختيار واحد أو أكثر، ولكن يمكنهم اختيار قيمة واحدة فقط من القائمة المنسدلة.

items[]

object (SelectionItem)

مصفوفة من العناصر القابلة للاختيار على سبيل المثال، مصفوفة من أزرار الاختيار أو مربّعات الاختيار يمكن إضافة ما يصل إلى 100 عنصر.

onChangeAction

object (Action)

في حال تحديده، يتم إرسال النموذج عند تغيير الاختيار. إذا لم يتم تحديد زرّ، يجب تحديد زرّ منفصل لإرسال النموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

multiSelectMaxSelectedItems

integer

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

multiSelectMinQueryLength

integer

بالنسبة إلى القوائم التي تتيح الاختيار من بين عدّة خيارات، يشير هذا الحقل إلى عدد أحرف النص التي يُدخلها المستخدم قبل أن تعرض القائمة عناصر الاختيار المقترَحة.

في حال عدم ضبطها، تستخدم قائمة الاختيار المتعدّد القيم التلقائية التالية:

  • إذا كانت القائمة تستخدم صفيفًا ثابتًا من SelectionInput العناصر، تكون القيمة التلقائية هي 0 حرف ويتم تعبئة العناصر من الصفيف على الفور.
  • إذا كانت القائمة تستخدِم مصدر بيانات ديناميكيًا ( multi_select_data_source)، يتم ضبط الإعداد التلقائي على 3 أحرف قبل طلب البحث من مصدر البيانات لعرض العناصر المقترَحة.
validation

object (Validation)

بالنسبة إلى القوائم المنسدلة، ينطبق ذلك على عملية التحقّق من صحة حقل إدخال الاختيار هذا.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

حقل الربط multi_select_data_source. بالنسبة إلى القائمة التي تتيح الاختيار من بين عدّة خيارات، هو مصدر بيانات يعبّئ عناصر الاختيار بشكل ديناميكي.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace. multi_select_data_source يمكن أن يكون أحد القيم التالية فقط:

externalDataSource

object (Action)

مصدر بيانات خارجي، مثل قاعدة بيانات علائقية

platformDataSource

object (PlatformDataSource)

مصدر بيانات من Google Workspace

SelectionType

تنسيق العناصر التي يمكن للمستخدمين اختيارها تتيح الخيارات المختلفة أنواعًا مختلفة من التفاعلات. على سبيل المثال، يمكن للمستخدمين اختيار مربّعات اختيار متعدّدة، ولكن يمكنهم اختيار عنصر واحد فقط من القائمة المنسدلة.

يتيح كل إدخال اختيار نوعًا واحدًا من الاختيارات. على سبيل المثال، لا يمكن استخدام مربّعات الاختيار ومفاتيح التبديل معًا.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
CHECK_BOX مجموعة من مربّعات الاختيار يمكن للمستخدمين اختيار مربّع اختيار واحد أو أكثر.
RADIO_BUTTON مجموعة من أزرار الاختيار يمكن للمستخدمين اختيار زر اختيار واحد.
SWITCH مجموعة من مفاتيح التبديل يمكن للمستخدمين تفعيل مفتاح واحد أو أكثر.
DROPDOWN قائمة منسدلة يمكن للمستخدمين اختيار عنصر واحد من القائمة.
MULTI_SELECT

قائمة تتضمّن مربّع نص يمكن للمستخدمين كتابة عنصر واحد أو أكثر واختياره.

بالنسبة إلى إضافات Google Workspace، عليك تعبئة العناصر باستخدام صفيف ثابت من عناصر SelectionItem.

بالنسبة إلى تطبيقات Google Chat، يمكنك أيضًا تعبئة العناصر باستخدام مصدر بيانات ديناميكي وعناصر اقتراح تلقائي أثناء كتابة المستخدمين في القائمة. على سبيل المثال، يمكن للمستخدمين بدء كتابة اسم مساحة في Google Chat، ويقترح التطبيق المصغّر المساحة تلقائيًا. لتعبئة العناصر ديناميكيًا لقائمة اختيار متعدّد، استخدِم أحد الأنواع التالية من مصادر البيانات:

  • بيانات Google Workspace: تتم تعبئة العناصر باستخدام بيانات من Google Workspace، مثل مستخدمي Google Workspace أو مساحات Google Chat.
  • البيانات الخارجية: يتمّ تعبئة العناصر من مصدر بيانات خارجي خارج Google Workspace.

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

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

SelectionItem

عنصر يمكن للمستخدمين اختياره في إدخال اختيار، مثل مربّع اختيار أو مفتاح تبديل. يمكن إضافة ما يصل إلى 100 عنصر.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "text": string,
  "value": string,
  "selected": boolean,
  "startIconUri": string,
  "bottomText": string
}
الحقول
text

string

النص الذي يحدّد السلعة أو يصفّها للمستخدمين

value

string

القيمة المرتبطة بهذا العنصر على العميل استخدام هذا الرمز كقيمة إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

selected

boolean

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

startIconUri

string

بالنسبة إلى القوائم التي تتيح الاختيار المتعدّد، يكون عنوان URL للرمز معروضًا بجانب حقل text العنصر. يتوافق مع ملفات PNG وJPEG. يجب أن يكون عنوان URL HTTPS. على سبيل المثال، https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png.

bottomText

string

بالنسبة إلى قوائم الاختيار المتعدّد، يشير ذلك إلى وصف نصي أو تصنيف يتم عرضه أسفل حقل text العنصر.

PlatformDataSource

بالنسبة إلى تطبيقات SelectionInput المصغّرة التي تستخدِم قائمة اختيار متعدّد، يجب توفير مصدر بيانات من Google Workspace. تُستخدَم لتعبئة العناصر في قائمة متعددة الاختيارات.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{

  // Union field data_source can be only one of the following:
  "commonDataSource": enum (CommonDataSource),
  "hostAppDataSource": {
    object (HostAppDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
الحقول
حقل الربط data_source. مصدر البيانات data_source يمكن أن يكون أحد القيم التالية فقط:
commonDataSource

enum (CommonDataSource)

مصدر بيانات تتم مشاركته من خلال جميع تطبيقات Google Workspace، مثل المستخدمين في مؤسسة Google Workspace

hostAppDataSource

object (HostAppDataSourceMarkup)

مصدر بيانات فريد لتطبيق مضيف في Google Workspace، مثل المساحات في Google Chat

يتوافق هذا الحقل مع مكتبات Google API Client Libraries، ولكنّه غير متوفّر في مكتبات Cloud Client Libraries. لمزيد من المعلومات، يُرجى الاطّلاع على تثبيت مكتبات العملاء.

CommonDataSource

مصدر بيانات تتم مشاركته من قِبل جميع تطبيقات Google Workspace

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

عمليات التعداد
UNKNOWN القيمة التلقائية لا تستخدِم هذه الميزة.
USER مستخدمو Google Workspace لا يمكن للمستخدم عرض المستخدمين واختيارهم إلا من مؤسسته على Google Workspace.

HostAppDataSourceMarkup

بالنسبة إلى تطبيقات الويب المصغرة SelectionInput التي تستخدم قائمة اختيار متعدّد، يجب توفير مصدر بيانات من تطبيق Google Workspace. يعبّئ مصدر البيانات عناصر الاختيار لقائمة الاختيار المتعدّد.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{

  // Union field data_source can be only one of the following:
  "chatDataSource": {
    object (ChatClientDataSourceMarkup)
  }
  // End of list of possible types for union field data_source.
}
الحقول
حقل الربط data_source. تطبيق Google Workspace الذي يعبّئ العناصر لقائمة متعددة الاختيارات data_source يمكن أن يكون أحد القيم التالية فقط:
chatDataSource

object (ChatClientDataSourceMarkup)

مصدر بيانات من Google Chat

ChatClientDataSourceMarkup

بالنسبة إلى أداة SelectionInput التي تستخدِم قائمة اختيار متعدّد، يجب توفير مصدر بيانات من Google Chat. يعبّئ مصدر البيانات عناصر الاختيار لقائمة الاختيار المتعدّد. على سبيل المثال، يمكن للمستخدم اختيار مساحات Google Chat التي يكون عضوًا فيها.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{

  // Union field source can be only one of the following:
  "spaceDataSource": {
    object (SpaceDataSource)
  }
  // End of list of possible types for union field source.
}
الحقول
حقل الربط source. مصدر بيانات Google Chat source يمكن أن يكون أحد القيم التالية فقط:
spaceDataSource

object (SpaceDataSource)

مساحات Google Chat التي يكون المستخدم عضوًا فيها

SpaceDataSource

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

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "defaultToCurrentSpace": boolean
}
الحقول
defaultToCurrentSpace

boolean

في حال ضبط القيمة على true، ستختار قائمة الاختيار المتعدّد مساحة Google Chat الحالية كعنصر تلقائيًا.

DateTimePicker

تتيح للمستخدمين إدخال تاريخ أو وقت أو تاريخ ووقت معًا. للحصول على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على السماح للمستخدم باختيار تاريخ ووقت.

يمكن للمستخدمين إدخال نص أو استخدام أداة الاختيار لاختيار التواريخ والأوقات. إذا أدخل المستخدمون تاريخًا أو وقتًا غير صالحَين، يعرض أداة الاختيار رسالة خطأ تطلب من المستخدمين إدخال المعلومات بشكل صحيح.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "name": string,
  "label": string,
  "type": enum (DateTimePickerType),
  "valueMsEpoch": string,
  "timezoneOffsetDate": integer,
  "onChangeAction": {
    object (Action)
  },
  "validation": {
    object (Validation)
  }
}
الحقول
name

string

الاسم الذي يتم من خلاله تعريف DateTimePicker في حدث إدخال نموذج.

لمعرفة التفاصيل حول التعامل مع مدخلات النماذج، يُرجى الاطّلاع على تلقّي بيانات النماذج.

label

string

النص الذي يطلب من المستخدمين إدخال تاريخ أو وقت أو تاريخ ووقت على سبيل المثال، إذا كان المستخدمون يحدّدون موعدًا، استخدِم تصنيفًا مثل Appointment date أو Appointment date and time.

type

enum (DateTimePickerType)

ما إذا كان التطبيق المصغّر يتيح إدخال تاريخ أو وقت أو التاريخ والوقت معًا

valueMsEpoch

string (int64 format)

القيمة التلقائية المعروضة في التطبيق المصغّر، بالمللي ثانية منذ وقت بداية حقبة Unix

حدِّد القيمة استنادًا إلى نوع أداة الاختيار ( DateTimePickerType):

  • DATE_AND_TIME : تاريخ تقويمي ووقت بالتوقيت العالمي المنسق على سبيل المثال، لتمثيل 1 كانون الثاني (يناير) 2023 في الساعة 12:00 مساءً بالتوقيت العالمي المتّفق عليه، استخدِم 1672574400000.
  • DATE_ONLY : تاريخ تقويمي في الساعة 00:00:00 بالتوقيت العالمي المنسّق على سبيل المثال، للإشارة إلى 1 كانون الثاني (يناير) 2023، استخدِم 1672531200000.
  • TIME_ONLY : وقت بالتوقيت العالمي المنسق على سبيل المثال، للإشارة إلى الساعة 12:00 مساءً، استخدِم 43200000 (أو 12 * 60 * 60 * 1000).
timezoneOffsetDate

integer

يمثّل هذا الرقم فرق التوقيت بالساعات والدقائق بين المنطقة الزمنية والتوقيت العالمي المنسق. في حال ضبطه، يتم عرض الرمز valueMsEpoch في المنطقة الزمنية المحدّدة. في حال عدم ضبط القيمة، يتم ضبطها تلقائيًا على إعداد المنطقة الزمنية للمستخدم.

onChangeAction

object (Action)

يتم تشغيله عندما ينقر المستخدِم على حفظ أو محو من واجهة DateTimePicker.

validation

object (Validation)

اختياري. حدِّد عملية التحقّق المطلوبة لأداة اختيار الموقّت والتاريخ هذه.

تتوفّر هذه الميزة لتطبيقات Google Chat وإضافات Google Workspace.

DateTimePickerType

تنسيق التاريخ والوقت في التطبيق المصغّر DateTimePicker. يحدِّد ما إذا كان يمكن للمستخدمين إدخال تاريخ أو وقت أو تاريخ ووقت معًا.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
DATE_AND_TIME يُدخل المستخدمون تاريخًا ووقتًا.
DATE_ONLY يُدخِل المستخدِمون تاريخًا.
TIME_ONLY يُدخِل المستخدمون وقتًا.

حاجز

لا يحتوي هذا النوع على أي حقول.

تعرِض هذه السمة فاصلاً بين التطبيقات المصغّرة على شكل خط أفقي. للاطّلاع على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على إضافة فاصل أفقي بين التطبيقات المصغّرة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

على سبيل المثال، ينشئ ملف JSON التالي مُقسّمًا:

"divider": {}

شبكة

تعرِض شبكة تتضمّن مجموعة من العناصر. يمكن أن تتضمّن العناصر نصًا أو صورًا فقط. للأعمدة السريعة الاستجابة أو لتضمين أكثر من نص أو صور، استخدِم Columns. للاطّلاع على مثال في تطبيقات Google Chat، يُرجى الاطّلاع على مقالة عرض شبكة تتضمّن مجموعة من العناصر.

تتيح الشبكة استخدام أي عدد من الأعمدة والعناصر. يتم تحديد عدد الصفوف حسب العناصر مقسومة على الأعمدة. تحتوي الشبكة التي تتضمّن 10 عناصر وعمودَين على 5 صفوف. تحتوي الشبكة التي تتضمّن 11 عنصرًا وعمودَين على 6 صفوف.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

على سبيل المثال، ينشئ ملف JSON التالي شبكة من عمودَين يتضمّن عنصرًا واحدًا:

"grid": {
  "title": "A fine collection of items",
  "columnCount": 2,
  "borderStyle": {
    "type": "STROKE",
    "cornerRadius": 4
  },
  "items": [
    {
      "image": {
        "imageUri": "https://www.example.com/image.png",
        "cropStyle": {
          "type": "SQUARE"
        },
        "borderStyle": {
          "type": "STROKE"
        }
      },
      "title": "An item",
      "textAlignment": "CENTER"
    }
  ],
  "onClick": {
    "openLink": {
      "url": "https://www.example.com"
    }
  }
}
تمثيل JSON
{
  "title": string,
  "items": [
    {
      object (GridItem)
    }
  ],
  "borderStyle": {
    object (BorderStyle)
  },
  "columnCount": integer,
  "onClick": {
    object (OnClick)
  }
}
الحقول
title

string

النص الذي يظهر في عنوان الشبكة

items[]

object (GridItem)

العناصر المطلوب عرضها في الشبكة

borderStyle

object (BorderStyle)

نمط الحدود الذي سيتم تطبيقه على كل عنصر في الشبكة

columnCount

integer

عدد الأعمدة المطلوب عرضها في الشبكة يتم استخدام قيمة تلقائية إذا لم يتم تحديد هذا الحقل، وتختلف هذه القيمة التلقائية حسب مكان عرض الشبكة (في مربّع الحوار أو في الشريك).

onClick

object (OnClick)

تتم إعادة استخدام هذا المرجع من خلال كل عنصر فردي في الشبكة، ولكن مع إضافة معرّف العنصر وفهرسه في قائمة العناصر إلى مَعلمات المرجع.

GridItem

يمثّل عنصرًا في تنسيق شبكة. يمكن أن تحتوي العناصر على نص أو صورة أو كليهما.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "id": string,
  "image": {
    object (ImageComponent)
  },
  "title": string,
  "subtitle": string,
  "layout": enum (GridItemLayout)
}
الحقول
id

string

معرّف يحدّده المستخدم لعنصر الشبكة هذا. يتم عرض هذا المعرّف في مَعلمات callback onClick لشبكة الشبكة الرئيسية.

image

object (ImageComponent)

الصورة التي تظهر في عنصر الشبكة

title

string

عنوان عنصر الشبكة

subtitle

string

العنوان الفرعي لعنصر الشبكة

layout

enum (GridItemLayout)

التنسيق الذي سيتم استخدامه لعنصر الشبكة.

ImageComponent

تمثّل صورة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "imageUri": string,
  "altText": string,
  "cropStyle": {
    object (ImageCropStyle)
  },
  "borderStyle": {
    object (BorderStyle)
  }
}
الحقول
imageUri

string

عنوان URL للصورة

altText

string

تصنيف تسهيل الاستخدام للصورة

cropStyle

object (ImageCropStyle)

نمط الاقتصاص المطلوب تطبيقه على الصورة.

borderStyle

object (BorderStyle)

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

ImageCropStyle

تمثّل نمط الاقتصاص الذي تم تطبيقه على صورة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

على سبيل المثال، إليك كيفية تطبيق نسبة عرض إلى ارتفاع 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}
تمثيل JSON
{
  "type": enum (ImageCropType),
  "aspectRatio": number
}
الحقول
type

enum (ImageCropType)

نوع المحصول

aspectRatio

number

نسبة العرض إلى الارتفاع التي سيتم استخدامها إذا كان نوع الاقتصاص هو RECTANGLE_CUSTOM.

على سبيل المثال، إليك كيفية تطبيق نسبة عرض إلى ارتفاع 16:9:

cropStyle {
 "type": "RECTANGLE_CUSTOM",
 "aspectRatio": 16/9
}

ImageCropType

تمثّل نمط الاقتصاص الذي تم تطبيقه على صورة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
IMAGE_CROP_TYPE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
SQUARE القيمة التلقائية يُطبّق اقتصاصًا مربّعًا.
CIRCLE يطبّق اقتصاصًا دائريًا.
RECTANGLE_CUSTOM تُطبِّق اقتصاصًا مستطيلاً بنسبة عرض إلى ارتفاع مخصّصة. اضبط نسبة العرض إلى الارتفاع المخصّصة باستخدام aspectRatio.
RECTANGLE_4_3 تُطبِّق اقتصاصًا مستطيلاً بنسبة عرض إلى ارتفاع 4:3.

BorderStyle

خيارات النمط لحدود البطاقة أو التطبيق المصغّر، بما في ذلك نوع الحدود ولونها

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "type": enum (BorderType),
  "strokeColor": {
    object (Color)
  },
  "cornerRadius": integer
}
الحقول
type

enum (BorderType)

نوع الحد

strokeColor

object (Color)

الألوان المُستخدَمة عندما يكون النوع هو BORDER_TYPE_STROKE.

لضبط لون الخطوط، حدِّد قيمة لحقول red، green، blue. يجب أن تكون القيمة عددًا عشريًا بين 0 و1 استنادًا إلى قيمة لون RGB، حيث يمثّل 0 (0/255) عدم توفّر اللون ويمثّل 1 (255/255) الحد الأقصى لكثافة اللون.

على سبيل المثال، يضبط الرمز البرمجي التالي اللون على الأحمر بأعلى كثافة له:

"color": {
   "red": 1,
   "green": 0,
   "blue": 0,
}

الحقل alpha غير متاح للون الخطوط. يتم تجاهل هذا الحقل في حال تحديده.

cornerRadius

integer

نصف قطر الزاوية للحدود

BorderType

يمثّل أنواع الحدود المطبَّقة على التطبيقات المصغّرة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
BORDER_TYPE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
NO_BORDER القيمة التلقائية بدون حدود
STROKE مخطّط

GridItemLayout

تمثّل خيارات التنسيق المختلفة المتاحة لعنصر الشبكة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
GRID_ITEM_LAYOUT_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
TEXT_BELOW يظهر العنوان والعنوان الفرعي أسفل صورة عنصر الشبكة.
TEXT_ABOVE يظهر العنوان والعنوان الفرعي أعلى صورة عنصر الشبكة.

الأعمدة

تعرِض الأداة Columns ما يصل إلى عمودَين في بطاقة أو مربّع حوار. يمكنك إضافة تطبيقات مصغّرة إلى كل عمود، وستظهر التطبيقات المصغّرة بالترتيب المحدّد. للحصول على مثال في تطبيقات Google Chat، اطّلِع على عرض البطاقات وملفات الحوار في الأعمدة.

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

يتم عرض الأعمدة جنبًا إلى جنب. يمكنك تخصيص عرض كل عمود باستخدام الحقل HorizontalSizeStyle. إذا كان عرض شاشة المستخدم ضيقًا جدًا، يتمّ عرض العمود الثاني أسفل الأول:

  • على الويب، يتمّ عرض العمود الثاني بشكل مُعدَّل إذا كان عرض الشاشة أقلّ من أو يساوي 480 بكسل.
  • على أجهزة iOS، يتمّ عرض العمود الثاني على عدة أسطر إذا كان عرض الشاشة أقل من أو يساوي 300 نقطة.
  • على أجهزة Android، يتمّ عرض العمود الثاني على عدة أسطر إذا كان عرض الشاشة أقل من 320 وحدة بكسل مستقلة الكثافة أو يساويها.

لتضمين أكثر من عمودَين أو لاستخدام الصفوف، استخدِم تطبيقات مصغّرة Grid.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace". تشمل واجهات مستخدم الإضافات التي تتيح الأعمدة ما يلي:

  • مربّع الحوار الذي يظهر عندما يفتح المستخدمون الإضافة من مسودة رسالة إلكترونية
  • مربّع الحوار الذي يظهر عندما يفتح المستخدمون الإضافة من قائمة إضافة مرفق في حدث "تقويم Google"
تمثيل JSON
{
  "columnItems": [
    {
      object (Column)
    }
  ]
}
الحقول
columnItems[]

object (Column)

صفيف من الأعمدة يمكنك تضمين عمودَين بحد أقصى في بطاقة أو مربّع حوار.

العمود

عمود

إضافات Google Workspace وتطبيقات Chat

تمثيل JSON
{
  "horizontalSizeStyle": enum (HorizontalSizeStyle),
  "horizontalAlignment": enum (HorizontalAlignment),
  "verticalAlignment": enum (VerticalAlignment),
  "widgets": [
    {
      object (Widgets)
    }
  ]
}
الحقول
horizontalSizeStyle

enum (HorizontalSizeStyle)

تُحدِّد كيفية ملء عمود لعرض البطاقة.

horizontalAlignment

enum (HorizontalAlignment)

تُحدِّد ما إذا كان يجب محاذاة التطبيقات المصغّرة على يمين أو يسار أو وسط عمود.

verticalAlignment

enum (VerticalAlignment)

لتحديد ما إذا كانت التطبيقات المصغّرة تتم محاذاتها في أعلى أو أسفل أو وسط عمود

widgets[]

object (Widgets)

صفيف من التطبيقات المصغّرة المضمّنة في عمود تظهر التطبيقات المصغّرة بالترتيب المحدّد.

HorizontalSizeStyle

تُحدِّد كيفية ملء عمود لعرض البطاقة. يعتمد عرض كل عمود على كلاً من HorizontalSizeStyle وعرض التطبيقات المصغّرة ضمن العمود.

إضافات Google Workspace وتطبيقات Chat

عمليات التعداد
HORIZONTAL_SIZE_STYLE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
FILL_AVAILABLE_SPACE القيمة التلقائية يملؤه العمود المساحة المتوفّرة، بما يصل إلى% 70 من عرض البطاقة. في حال ضبط كلا العمودَين على FILL_AVAILABLE_SPACE، سيشغل كل عمود% 50 من المساحة.
FILL_MINIMUM_SPACE يملؤه العمود أقل مساحة ممكنة ولا يتجاوز 30% من عرض البطاقة.

HorizontalAlignment

تُحدِّد ما إذا كان يجب محاذاة التطبيقات المصغّرة على يمين أو يسار أو وسط عمود.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

عمليات التعداد
HORIZONTAL_ALIGNMENT_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
START القيمة التلقائية محاذاة التطبيقات المصغّرة مع موضع بداية العمود بالنسبة إلى التنسيقات من اليسار إلى اليمين، تتم المحاذاة إلى اليسار. بالنسبة إلى التنسيقات من اليمين إلى اليسار، يتمّ محاذاة النص على اليسار.
CENTER محاذاة التطبيقات المصغّرة في منتصف العمود
END محاذاة التطبيقات المصغّرة مع موضع نهاية العمود بالنسبة إلى التنسيقات من اليسار إلى اليمين، يتم محاذاة التطبيقات المصغّرة على اليمين. بالنسبة إلى التنسيقات من اليمين إلى اليسار، يتم محاذاة التطبيقات المصغّرة على اليسار.

VerticalAlignment

لتحديد ما إذا كانت التطبيقات المصغّرة تتم محاذاتها في أعلى أو أسفل أو وسط عمود

إضافات Google Workspace وتطبيقات Chat

عمليات التعداد
VERTICAL_ALIGNMENT_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
CENTER القيمة التلقائية محاذاة التطبيقات المصغّرة في وسط عمود
TOP محاذاة التطبيقات المصغّرة في أعلى عمود
BOTTOM محاذاة التطبيقات المصغّرة في أسفل عمود

التطبيقات المصغَّرة

التطبيقات المصغّرة المتوافقة التي يمكنك تضمينها في عمود

إضافات Google Workspace وتطبيقات Chat

تمثيل JSON
{

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "image": {
    object (Image)
  },
  "decoratedText": {
    object (DecoratedText)
  },
  "buttonList": {
    object (ButtonList)
  },
  "textInput": {
    object (TextInput)
  },
  "selectionInput": {
    object (SelectionInput)
  },
  "dateTimePicker": {
    object (DateTimePicker)
  },
  "chipList": {
    object (ChipList)
  }
  // End of list of possible types for union field data.
}
الحقول

حقل الربط data.

data يمكن أن يكون أحد القيم التالية فقط:

textParagraph

object (TextParagraph)

TextParagraph تطبيق مصغّر.

image

object (Image)

Image تطبيق مصغّر.

decoratedText

object (DecoratedText)

DecoratedText تطبيق مصغّر.

buttonList

object (ButtonList)

ButtonList تطبيق مصغّر.

textInput

object (TextInput)

TextInput تطبيق مصغّر.

selectionInput

object (SelectionInput)

SelectionInput تطبيق مصغّر.

dateTimePicker

object (DateTimePicker)

DateTimePicker تطبيق مصغّر.

chipList

object (ChipList)

ChipList تطبيق مصغّر. تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

ChipList

قائمة شرائح معروضة أفقيًا، ويمكن التمرير فيها أفقيًا أو لفها إلى السطر التالي.

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "layout": enum (Layout),
  "chips": [
    {
      object (Chip)
    }
  ]
}
الحقول
layout

enum (Layout)

تنسيق قائمة الشرائح المحدّد

chips[]

object (Chip)

صفيف من الشرائح

التنسيق

تنسيق قائمة الشرائح

عمليات التعداد
LAYOUT_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
WRAPPED القيمة التلقائية يتم عرض قائمة الشرائح في السطر التالي إذا لم تكن هناك مساحة أفقية كافية.
HORIZONTAL_SCROLLABLE يتم التمرير في الشرائح أفقيًا إذا لم تلائم المساحة المتوفّرة.

شريحة

نص أو رمز أو شريحة نص ورمز يمكن للمستخدمين النقر عليها

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "icon": {
    object (Icon)
  },
  "label": string,
  "onClick": {
    object (OnClick)
  },
  "enabled": boolean,
  "disabled": boolean,
  "altText": string
}
الحقول
icon

object (Icon)

صورة الرمز إذا تم ضبط كل من icon و text ، سيظهر الرمز قبل النص.

label

string

النص المعروض داخل الشريحة

onClick

object (OnClick)

اختيارية: الإجراء الذي سيتم تنفيذه عندما ينقر المستخدم على الشريحة، مثل فتح رابط تشعبي أو تشغيل دالة مخصّصة.

enabled
(deprecated)

boolean

ما إذا كانت الشريحة في حالة نشطة وتستجيب لإجراءات المستخدم الإعداد التلقائي هو true. تمّ الإيقاف. استخدِم disabled بدلاً من ذلك.

disabled

boolean

ما إذا كانت الشريحة في حالة غير نشطة وتتجاهل إجراءات المستخدم الإعداد التلقائي هو false.

altText

string

النص البديل المستخدَم لتحسين إمكانية الاستخدام

اضبط نصًا وصفيًا يُعلِم المستخدمين بوظائف الشريحة. على سبيل المثال، إذا كانت الشريحة تفتح رابطًا تشعبيًا، اكتب: "فتح علامة تبويب جديدة في المتصفّح والانتقال إلى مستندات مطوّري Google Chat على الرابط https://developers.google.com/workspace/chat"

يعرض لوحة العرض الدوّارة، المعروفة أيضًا باسم شريط التمرير، قائمة بتطبيقات المصغّرة بتنسيق عرض الشرائح، مع أزرار للانتقال إلى التطبيق المصغّر السابق أو التالي.

على سبيل المثال، هذا تمثيل JSON لواجهة عرض دوّارة تحتوي على ثلاث تطبيقات مصغّرة للفقرات النصية.

{
  "carouselCards": [
    {
      "widgets": [
        {
          "textParagraph": {
            "text": "First text paragraph in carousel",
          }
        }
      ]
    },
    {
      "widgets": [
        {
          "textParagraph": {
            "text": "Second text paragraph in carousel",
          }
        }
      ]
    },
    {
      "widgets": [
        {
          "textParagraph": {
            "text": "Third text paragraph in carousel",
          }
        }
      ]
    }
  ]
}

تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "carouselCards": [
    {
      object (CarouselCard)
    }
  ]
}
الحقول
carouselCards[]

object (CarouselCard)

قائمة بالبطاقات المضمّنة في لوحة العرض الدوّارة

CarouselCard

بطاقة يمكن عرضها كعنصر في لوحة العرض الدوّارة تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "widgets": [
    {
      object (NestedWidget)
    }
  ],
  "footerWidgets": [
    {
      object (NestedWidget)
    }
  ]
}
الحقول
widgets[]

object (NestedWidget)

قائمة التطبيقات المصغّرة المعروضة في بطاقة لوحة العرض الدوّارة يتم عرض التطبيقات المصغّرة بالترتيب المحدّد.

footerWidgets[]

object (NestedWidget)

قائمة بالتطبيقات المصغّرة المعروضة في أسفل بطاقة لوحة العرض الدوّارة يتم عرض التطبيقات المصغّرة بالترتيب المحدّد.

NestedWidget

قائمة التطبيقات المصغّرة التي يمكن عرضها في تنسيق يحتوي على تطبيقات مصغّرة أخرى، مثل CarouselCard. تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{

  // Union field data can be only one of the following:
  "textParagraph": {
    object (TextParagraph)
  },
  "buttonList": {
    object (ButtonList)
  },
  "image": {
    object (Image)
  }
  // End of list of possible types for union field data.
}
الحقول

حقل الربط data.

data يمكن أن يكون أحد القيم التالية فقط:

textParagraph

object (TextParagraph)

أداة فقرة نصية

buttonList

object (ButtonList)

تطبيق مصغّر لقائمة الأزرار

image

object (Image)

أداة صورة

CollapseControl

يمثّل عنصر تحكّم في التوسيع والتصغير. تتوفّر هذه الميزة لتطبيقات Google Chat ولا تتوفّر لإضافات Google Workspace.

تمثيل JSON
{
  "horizontalAlignment": enum (HorizontalAlignment),
  "expandButton": {
    object (Button)
  },
  "collapseButton": {
    object (Button)
  }
}
الحقول
horizontalAlignment

enum (HorizontalAlignment)

المحاذاة الأفقية لزرَّي التوسيع والتصغير

expandButton

object (Button)

اختيارية: حدِّد زرًا قابلاً للتخصيص لتوسيع القسم. يجب ضبط الحقلين expandButton وcollapseButton. لن يتم تفعيل مجموعة حقول واحدة فقط. في حال عدم ضبط هذا الحقل، يتم استخدام الزر التلقائي.

collapseButton

object (Button)

اختيارية: حدِّد زرًا قابلاً للتخصيص لتصغير القسم. يجب ضبط الحقلين expandButton وcollapseButton. لن يتم تفعيل مجموعة حقول واحدة فقط. في حال عدم ضبط هذا الحقل، يتم استخدام الزر التلقائي.

DividerStyle

نمط الفاصل في البطاقة لا تُستخدَم حاليًا إلا كمقسّمات بين أقسام البطاقة.

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

عمليات التعداد
DIVIDER_STYLE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
SOLID_DIVIDER الخيار التلقائي عرض فاصل صلب
NO_DIVIDER في حال ضبطه، لن يتم عرض أي فاصل. يزيل هذا النمط المقسم تمامًا من التنسيق. والنتيجة هي ما يعادل عدم إضافة فاصل على الإطلاق.

CardAction

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

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

تمثيل JSON
{
  "actionLabel": string,
  "onClick": {
    object (OnClick)
  }
}
الحقول
actionLabel

string

التصنيف الذي يظهر كعنصر في قائمة الإجراءات

onClick

object (OnClick)

إجراء onClick لهذا العنصر

CardFixedFooter

تذييل ثابت يظهر في أسفل البطاقة.

يؤدي ضبط fixedFooter بدون تحديد primaryButton أو secondaryButton إلى حدوث خطأ.

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

تتوفّر هذه الميزة لتطبيقات Google Chat و"إضافات Google Workspace".

تمثيل JSON
{
  "primaryButton": {
    object (Button)
  },
  "secondaryButton": {
    object (Button)
  }
}
الحقول
primaryButton

object (Button)

الزر الأساسي للتذييل الثابت يجب أن يكون الزر زر نص مع ضبط النص واللون.

secondaryButton

object (Button)

الزر الثانوي للجزء السفلي الثابت يجب أن يكون الزر زر نص مع ضبط النص واللون. في حال ضبط secondaryButton ، يجب أيضًا ضبط primaryButton.

DisplayStyle

في "إضافات Google Workspace"، تحدِّد طريقة عرض البطاقة.

تتوفّر هذه الميزة لإضافات Google Workspace ولا تتوفّر لتطبيقات Google Chat.

عمليات التعداد
DISPLAY_STYLE_UNSPECIFIED لا تستخدِم هذه الميزة. غير محدد
PEEK يظهر عنوان البطاقة في أسفل الشريط الجانبي، ويغطي جزئيًا البطاقة العلوية الحالية من الحزمة. يؤدي النقر على العنوان إلى عرض البطاقة في حزمة البطاقات. إذا لم تتضمّن البطاقة عنوانًا، يتم استخدام عنوان تم إنشاؤه بدلاً من ذلك.
REPLACE القيمة التلقائية يتم عرض البطاقة من خلال استبدال عرض البطاقة العلوية في حزمة البطاقات.