توضّح هذه الصفحة كيفية إضافة التطبيقات المصغّرة وعناصر واجهة المستخدم إلى البطاقات. لكي يتمكّن المستخدمون من التفاعل مع تطبيق Google Chat، مثلاً من خلال بالنقر على زر أو إرسال المعلومات.
يمكن لتطبيقات Chat استخدام واجهات Chat التالية: لإنشاء بطاقات تفاعلية:
- الرسائل التي تتضمّن بطاقة واحدة أو أكثر
- الصفحات الرئيسية وهي بطاقة تظهر من علامة التبويب الصفحة الرئيسية مباشرةً الرسائل باستخدام تطبيق Chat
- مربّعات الحوار، وهي بطاقات تفتح في نافذة جديدة من الرسائل والصفحات الرئيسية
عندما يتفاعل المستخدمون مع البطاقات، يمكن لتطبيقات Chat استخدام البيانات التي التي تتم معالجتها والاستجابة وفقًا لذلك. للحصول على التفاصيل، يمكنك مراجعة جمع المعلومات من مستخدمي Google Chat ومعالجتها
استخدِم "أداة إنشاء البطاقات" لتصميم ومعاينة الرسائل وواجهات المستخدم لتطبيقات Chat:
فتح "أداة إنشاء البطاقات"المتطلبات الأساسية
تطبيق Google Chat مفعَّل للميزات التفاعلية لإنشاء تطبيق دردشة تفاعلي، أكمل إحدى مبادرات البدء السريعة التالية المستندة إلى في بنية التطبيق التي تريد استخدامها:
- خدمة HTTP مع دوال Google Cloud
- برمجة تطبيقات Google
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
إضافة زر
تشير رسالة الأشكال البيانية
تطبيق "ButtonList
" المصغّر
تعرض مجموعة من الأزرار. يمكن للأزرار عرض النص،
أيقونة أو كل من النص والأيقونة. على كل
Button
يدعم
إجراء واحد (OnClick
)
تحدث عندما ينقر المستخدمون على الزر. على سبيل المثال:
- فتح رابط تشعّبي باستخدام
OpenLink
، من أجل تزويد المستخدمين بمعلومات إضافية. - تشغيل
action
تقوم بتشغيل دالة مخصصة، مثل استدعاء واجهة برمجة تطبيقات.
لتسهيل الاستخدام، تتيح الأزرار استخدام نص بديل.
إضافة زر يشغِّل دالة مخصّصة
في ما يلي بطاقة تتألّف من تطبيق "ButtonList
" المصغّر مع زرَّين.
يؤدي النقر على زر واحد إلى فتح مستندات مطوّري برامج Google Chat في علامة تبويب جديدة. تشير رسالة الأشكال البيانية
يشغِّل زر آخر دالة مخصصة تسمى goToView()
ويمرر
مَعلمة viewType="BIRD EYE VIEW"
.
إضافة زر بنمط Material Design
يعرض ما يلي مجموعة من الأزرار في أزرار مختلفة بنظام Material Design الأنماط.
لتطبيق نمط التصميم المتعدد الأبعاد، لا تُضمِّن "اللون". .
إضافة زر بلون مخصص وزر غير مفعّل
يمكنك منع المستخدمين من النقر على زر من خلال ضبط "disabled": "true"
.
يعرض ما يلي بطاقة تتألّف من تطبيق "ButtonList
" المصغّر مع اثنين
الأزرار. يستخدم أحد الأزرار
حقل Color
لتخصيص خلفية الزر
اللون. يتم إيقاف الزر الآخر باستخدام الحقل Disabled
، الذي
تمنع المستخدم من النقر على الزر وتنفيذ الدالة.
إضافة زر به رمز
يعرض ما يلي بطاقة تتألّف من تطبيق "ButtonList
" المصغّر ورمزَين
تطبيقات "Button
" المصغّرة يستخدم أحد الأزرار
knownIcon
لعرض رمز البريد الإلكتروني المدمج في Google Chat. ويستخدم الزر الآخر
iconUrl
لعرض
أداة الرموز المخصصة.
إضافة زر به رمز ونص
يعرض ما يلي بطاقة تتألّف من تطبيق "ButtonList
" المصغّر الذي يطلب
المستخدم لإرسال بريد إلكتروني. يعرض الزر الأول رمز بريد إلكتروني
يعرض الزر الثاني النص. يمكن للمستخدم النقر فوق الرمز أو النص
لتشغيل الدالة sendEmail
.
تخصيص الزرّ لقسم قابل للتصغير
تخصيص زر التحكم الذي يمكن من خلاله تصغير الأقسام وتوسيعها داخل بنجاح. اختر من بين مجموعة من الرموز أو الصور لتمثيل محتوى القسم، مما يسّهل على المستخدمين فهم المعلومات والتفاعل معها المعلومات.
إضافة قائمة كاملة
تشير رسالة الأشكال البيانية
Overflow menu
يمكن استخدامها في بطاقات Chat لتوفير خيارات وإجراءات إضافية إنه يتيح
تقوم بتضمين المزيد من الخيارات دون ازدحام واجهة البطاقة، مما يضمن
التصميم النظيف والمنظم.
إضافة قائمة شرائح
ChipList
أداة متعددة الاستخدامات وجذابة بصريًا لعرض المعلومات.
استخدِم قوائم الشرائح لتمثيل العلامات أو الفئات أو البيانات الأخرى ذات الصلة،
على المستخدمين التنقل والتفاعل مع المحتوى الذي تقدمه.
جمع المعلومات من المستخدمين
يوضّح هذا القسم كيفية إضافة التطبيقات المصغّرة التي تجمع المعلومات، مثل. أو النصوص أو التحديدات.
لمعرفة طريقة معالجة ما يُدخله المستخدمون، اطّلِع على جمع المعلومات من مستخدمي Google Chat ومعالجتها
جمع النصوص
تطبيق "TextInput
" المصغّر
توفر حقلاً يمكن للمستخدمين إدخال نص فيه. تشير رسالة الأشكال البيانية
تطبيق مصغّر يدعم الاقتراحات، التي تساعد المستخدمين على إدخال بيانات موحدة، وعند التغيير
من الإجراءات، وهي
Actions
يتم تشغيلها عند حدوث تغيير في حقل إدخال النص، مثل إضافة مستخدم أو
حذف النص.
عندما تحتاج إلى جمع بيانات مجردة أو غير معروفة من المستخدمين، استخدم
التطبيق المصغّر "TextInput
". لجمع بيانات محددة من المستخدمين، استخدم
SelectionInput
التطبيق المصغّر بدلاً من ذلك.
في ما يلي بطاقة تتألّف من تطبيق TextInput
المصغّر:
جمع التواريخ أو الأوقات
تشير رسالة الأشكال البيانية
تطبيق "DateTimePicker
" المصغّر
يتيح للمستخدمين إدخال تاريخ أو وقت أو تاريخ
في وقت معين. أو يمكن للمستخدمين استخدام أداة الاختيار لاختيار التواريخ والأوقات. إذا أدخل المستخدمون
تاريخ أو وقت غير صالحَين، تعرض أداة الاختيار خطأ يطلب من المستخدمين إدخال
المعلومات بشكل صحيح.
يعرض ما يلي بطاقة مكونة من ثلاثة أنواع مختلفة من
تطبيقات "DateTimePicker
" المصغّرة:
السماح للمستخدمين باختيار العناصر
تطبيق "SelectionInput
" المصغّر
توفر مجموعة من العناصر القابلة للاختيار، مثل مربعات الاختيار وأزرار الاختيار ومفاتيح التبديل
أو قائمة منسدلة. يمكنك استخدام هذا التطبيق المصغّر.
لجمع بيانات محددة وموحدة من المستخدمين. لجمع بيانات غير محددة
من المستخدمين، يمكنك استخدام تطبيق TextInput
المصغّر بدلاً من ذلك.
تتيح التطبيق المصغّر "SelectionInput
" استخدام الاقتراحات التي تساعد المستخدمين على كتابة الزيّ الموحّد.
والبيانات وإجراءات التغيير، وهي
Actions
يتم تشغيلها عند حدوث تغيير في حقل إدخال تحديد، مثل إدخال
تحديد عنصر أو إلغاء تحديده.
يمكن لتطبيقات Chat تلقّي قيمة العناصر المحدّدة ومعالجتها. للحصول على تفاصيل حول التعامل مع إدخالات النماذج، راجِع معلومات العملية التي أدخلها المستخدمون:
يعرض هذا القسم أمثلة على البطاقات التي تستخدم تطبيق "SelectionInput
" المصغّر.
تستخدم الأمثلة أنواعًا مختلفة من إدخالات الأقسام:
إضافة مربع اختيار
يعرض ما يلي بطاقة تطلب من المستخدم تحديد
الاتصال احترافية أو شخصية أو كليهما باستخدام التطبيق المصغّر SelectionInput
الذي
يستخدم مربعات الاختيار:
إضافة زر اختيار
يعرض ما يلي بطاقة تطلب من المستخدم تحديد
الاتصال احترافي أو شخصي من خلال تطبيق SelectionInput
المصغّر الذي يستخدم
أزرار الاختيار:
إضافة مفتاح تبديل
يعرض ما يلي بطاقة تطلب من المستخدم تحديد
جهة الاتصال احترافية أو شخصية أو كليهما باستخدام تطبيق SelectionInput
المصغّر الذي
لاستخدام مفاتيح التحويل:
إضافة قائمة منسدلة
يعرض ما يلي بطاقة تطلب من المستخدم تحديد
الاتصال احترافي أو شخصي من خلال تطبيق SelectionInput
المصغّر الذي يستخدم
قائمة منسدلة:
إضافة قائمة اختيار متعدّد
يعرض ما يلي بطاقة تطلب من المستخدم اختيار جهات اتصال من قائمة اختيار متعدد:
يمكنك تعبئة العناصر لقائمة اختيار متعدد من البيانات التالية المصادر في Google Workspace:
- مستخدمو Google Workspace: يمكنك تعبئة المستخدمين داخل المؤسسة نفسها على Google Workspace.
- مساحات Chat: يُدخِل المستخدم عناصر في الاختيار المتعدد عرض المساحات التي ينتمي إليها واختيارها فقط Google Workspace.
لاستخدام مصادر بيانات Google Workspace، عليك تحديد
platformDataSource
. وعلى عكس أنواع إدخال التحديد الأخرى، قمت بحذف
SectionItem
، لأن عناصر التحديد هذه يتم الحصول عليها ديناميكيًا من
Google Workspace
يعرض الرمز التالي قائمة اختيارات متعددة لمستخدمي Google Workspace.
لتعبئة المستخدمين، يضبط مصدر الإدخال commonDataSource
على USER
:
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"commonDataSource": "USER"
}
}
}
يعرض الرمز التالي قائمة اختيار متعددة لـ Chat
مسافات. لتعبئة المساحات، يحدّد إدخال التحديد
الحقل "hostAppDataSource
". تحدد قائمة التحديد المتعدد أيضًا
من defaultToCurrentSpace
إلى true
، ما يجعل المساحة الحالية هي المساحة التلقائية
المحدد في القائمة:
JSON
{
"selectionInput": {
"name": "spaces",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"platformDataSource": {
"hostAppDataSource": {
"chatDataSource": {
"spaceDataSource": {
"defaultToCurrentSpace": true
}
}
}
}
}
}
يمكن أيضًا للقوائم المحدَّدة المتعدّدة تعبئة العناصر من بيانات تابعة لجهة خارجية أو خارجية. المصدر. فعلى سبيل المثال، يمكنك استخدام قوائم تحديد متعدد لمساعدة المستخدم على الاختيار من قائمة بالعملاء المحتملين من نظام إدارة العلاقات مع العملاء.
لاستخدام مصدر بيانات خارجي، يمكنك استخدام الحقل externalDataSource
من أجل
لتحديد الدالة التي تُرجع عناصر من مصدر البيانات.
لتقليل الطلبات إلى مصدر بيانات خارجي، يمكنك تضمين
العناصر المقترَحة التي تظهر في قائمة التحديد المتعدد قبل أن يكتب المستخدمون
القائمة. على سبيل المثال، يمكنك تعبئة جهات الاتصال التي تم البحث عنها مؤخرًا
المستخدم. لتعبئة العناصر المقترَحة من مصدر بيانات خارجي، حدِّد
SelectionItem
الأخرى.
يعرض الرمز التالي قائمة اختيار متعددة للعناصر من
مجموعة جهات الاتصال الخارجية للمستخدم. تعرض القائمة جهة اتصال واحدة بشكل تلقائي
وتشغِّل الدالة getContacts
لاسترداد العناصر وتعبئتها من
مصدر البيانات الخارجي:
JSON
{
"selectionInput": {
"name": "contacts",
"type": "MULTI_SELECT",
"label": "Selected contacts",
"multiSelectMaxSelectedItems": 5,
"multiSelectMinQueryLength": 2,
"externalDataSource": {
"function": "getContacts"
},
"items": [
{
"text": "Contact 3",
"value": "contact-3",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"bottomText": "Contact three description",
"selected": false
}
]
}
}
بالنسبة إلى مصادر البيانات الخارجية، يمكنك أيضًا إكمال العناصر التي يبدأها المستخدمون تلقائيًا
عند الكتابة في قائمة التحديد المتعدد. على سبيل المثال، إذا بدأ أحد المستخدمين في كتابة Atl
التي تملأ المدن في الولايات المتحدة،
يمكن لتطبيق Chat اقتراح "Atlanta
" تلقائيًا قبل المستخدم.
ينتهي الكتابة. يمكنك الإكمال التلقائي لما يصل إلى 100 عنصر.
لإكمال العناصر تلقائيًا، يمكنك إنشاء دالة تستعلم عن البيانات الخارجية المصدر ويعرض العناصر كلما كتب المستخدم في قائمة التحديد المتعدد. تشير رسالة الأشكال البيانية على النحو التالي:
- مرِّر كائن حدث يمثّل تفاعل المستخدم مع القائمة.
- حدد أن قيمة حدث التفاعل
invokedFunction
تتطابق مع الدالة من الحقلexternalDataSource
. - عندما تتطابق الدوال، يمكنك عرض العناصر المقترحة من البيانات الخارجية.
المصدر. لاقتراح عناصر بناءً على أنواع المستخدمين، احصل على قيمة
المفتاح
autocomplete_widget_query
. تمثّل هذه القيمة ما يكتبه المستخدم. في القائمة.
يُكمل الرمز البرمجي التالي العناصر تلقائيًا من مورد بيانات خارجي. باستخدام
المثال السابق، يقترح تطبيق Chat عناصر بناءً على
عند تشغيل الدالة getContacts
:
برمجة تطبيقات
Node.js
التحقق من صحة البيانات التي تم إدخالها في البطاقات
تشرح هذه الصفحة كيفية التحقّق من صحة البيانات التي تم إدخالها في action
الخاص بالبطاقة.
والتطبيقات المصغّرة.
على سبيل المثال، يمكنك التحقق من احتواء حقل إدخال نص على نص تم إدخاله بواسطة
أو تحتوي على عدد معين من الأحرف.
ضبط التطبيقات المصغّرة المطلوبة للإجراءات
كجزء من action
الخاص بالبطاقة
إضافة أسماء التطبيقات المصغّرة التي يحتاجها الإجراء إلى قائمة requiredWidgets
.
إذا كانت أي أدوات مدرجة هنا لا تحتوي على قيمة عند استدعاء هذا الإجراء، فسيتم إلغاء إرسال إجراء النموذج.
عندما يتم ضبط "all_widgets_are_required": "true"
على إجراء ما، سيتم عرض كل الأدوات.
في البطاقة مطلوبة من خلال هذا الإجراء.
ضبط إجراء all_widgets_are_required
في ميزة الاختيار المتعدد
JSON
{
"sections": [
{
"header": "Select contacts",
"widgets": [
{
"selectionInput": {
"type": "MULTI_SELECT",
"label": "Selected contacts",
"name": "contacts",
"multiSelectMaxSelectedItems": 3,
"multiSelectMinQueryLength": 1,
"onChangeAction": {
"all_widgets_are_required": true
},
"items": [
{
"value": "contact-1",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 1",
"bottomText": "Contact one description",
"selected": false
},
{
"value": "contact-2",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 2",
"bottomText": "Contact two description",
"selected": false
},
{
"value": "contact-3",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 3",
"bottomText": "Contact three description",
"selected": false
},
{
"value": "contact-4",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 4",
"bottomText": "Contact four description",
"selected": false
},
{
"value": "contact-5",
"startIconUri": "https://www.gstatic.com/images/branding/product/2x/contacts_48dp.png",
"text": "Contact 5",
"bottomText": "Contact five description",
"selected": false
}
]
}
}
]
}
]
}
ضبط إجراء "all_widgets_are_required
" في "منتقي التاريخ والوقت"
JSON
{
"sections": [
{
"widgets": [
{
"textParagraph": {
"text": "A datetime picker widget with both date and time:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_date_and_time",
"label": "meeting",
"type": "DATE_AND_TIME"
}
},
{
"textParagraph": {
"text": "A datetime picker widget with just date:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_date_only",
"label": "Choose a date",
"type": "DATE_ONLY",
"onChangeAction":{
"all_widgets_are_required": true
}
}
},
{
"textParagraph": {
"text": "A datetime picker widget with just time:"
}
},
{
"divider": {}
},
{
"dateTimePicker": {
"name": "date_time_picker_time_only",
"label": "Select a time",
"type": "TIME_ONLY"
}
}
]
}
]
}
ضبط إجراء all_widgets_are_required
في القائمة المنسدلة
JSON
{
"sections": [
{
"header": "Section Header",
"collapsible": true,
"uncollapsibleWidgetsCount": 1,
"widgets": [
{
"selectionInput": {
"name": "location",
"label": "Select Color",
"type": "DROPDOWN",
"onChangeAction": {
"all_widgets_are_required": true
},
"items": [
{
"text": "Red",
"value": "red",
"selected": false
},
{
"text": "Green",
"value": "green",
"selected": false
},
{
"text": "White",
"value": "white",
"selected": false
},
{
"text": "Blue",
"value": "blue",
"selected": false
},
{
"text": "Black",
"value": "black",
"selected": false
}
]
}
}
]
}
]
}
ضبط التحقّق من تطبيق مصغّر لإدخال النص
في textInput
التحقق من واجهة المستخدم، يمكنه تحديد عدد الأحرف المسموح به ونوع الإدخال
أداة إدخال النص هذه.
ضبط عدد الأحرف المسموح به لتطبيق إدخال النص
JSON
{
"sections": [
{
"header": "Tell us about yourself",
"collapsible": true,
"uncollapsibleWidgetsCount": 2,
"widgets": [
{
"textInput": {
"name": "favoriteColor",
"label": "Favorite color",
"type": "SINGLE_LINE",
"validation": {"character_limit":15},
"onChangeAction":{
"all_widgets_are_required": true
}
}
}
]
}
]
}
ضبط نوع الإدخال لأداة إدخال النص
JSON
{
"sections": [
{
"header": "Validate text inputs by input types",
"collapsible": true,
"uncollapsibleWidgetsCount": 2,
"widgets": [
{
"textInput": {
"name": "mailing_address",
"label": "Please enter a valid email address",
"type": "SINGLE_LINE",
"validation": {
"input_type": "EMAIL"
},
"onChangeAction": {
"all_widgets_are_required": true
}
}
},
{
"textInput": {
"name": "validate_integer",
"label": "Please enter a number",
"type": "SINGLE_LINE",
"validation": {
"input_type": "INTEGER"
}
}
},
{
"textInput": {
"name": "validate_float",
"label": "Please enter a number with a decimal",
"type": "SINGLE_LINE",
"validation": {
"input_type": "FLOAT"
}
}
}
]
}
]
}
تحديد المشاكل وحلّها
عند تثبيت تطبيق Google Chat أو تعرض card خطأً، تعرض واجهة Chat رسالة مفادها "حدث خطأ". أو "تعذَّرت معالجة طلبك". في بعض الأحيان، لا يمكن واجهة مستخدم Chat لا يعرض أي رسالة خطأ، ولكن يظهر تطبيق Chat أو ينتج عن بطاقة نتيجة غير متوقعة؛ على سبيل المثال، قد لا تظهر رسالة البطاقة موضع الإعلان.
على الرغم من أنه قد لا تظهر رسالة الخطأ في واجهة مستخدم Chat، تتوفر رسائل خطأ وصفية وبيانات السجل لمساعدتك في إصلاح الأخطاء عند تفعيل ميزة تسجيل الأخطاء لتطبيقات Chat للحصول على مساعدة في العرض، وتصحيح الأخطاء وإصلاح الأخطاء، فراجع تحديد مشاكل Google Chat وحلّها.