يوضّح هذا الدليل كيفية جمع تطبيقات Google Chat للمعلومات من المستخدمين ومعالجتها من خلال إنشاء حقول إدخال في النماذج ضمن الواجهات المستندة إلى البطاقات.
تطلب تطبيقات Chat معلومات من المستخدمين لتنفيذ إجراءات داخل Chat أو خارجه، بما في ذلك بالطرق التالية:
- اضبط الإعدادات. على سبيل المثال، للسماح للمستخدمين بتخصيص إعدادات الإشعارات أو ضبط تطبيق Chat وإضافته إلى مساحة واحدة أو أكثر.
- إنشاء معلومات أو تعديلها في تطبيقات Google Workspace الأخرى على سبيل المثال، يمكنك السماح للمستخدمين بإنشاء حدث في "تقويم Google".
- السماح للمستخدمين بالوصول إلى الموارد وتعديلها في تطبيقات أو خدمات ويب أخرى على سبيل المثال، يمكن أن يساعد تطبيق Chat المستخدمين في تعديل حالة طلب الدعم مباشرةً من مساحة Chat.
المتطلبات الأساسية
HTTP
تطبيق Google Chat يتلقّى تفاعلات المستخدمين ويستجيب لها لإنشاء إضافة، أكمِل دليل البدء السريع لبروتوكول HTTP.
برمجة التطبيقات
تطبيق Google Chat يتلقّى تفاعلات المستخدمين ويستجيب لها لإنشاء إضافة، أكمِل البدء السريع في "برمجة تطبيقات Google".
إنشاء نماذج باستخدام البطاقات
لجمع المعلومات، تصمّم تطبيقات Chat النماذج وحقول الإدخال، وتضمّنها في البطاقات. لعرض البطاقات للمستخدمين، يمكن لتطبيقات Chat استخدام واجهات Chat التالية:
- الرسائل التي تحتوي على بطاقة واحدة أو أكثر
- الصفحات الرئيسية، وهي بطاقة تظهر من علامة التبويب الصفحة الرئيسية في الرسائل المباشرة مع تطبيق Chat.
- مربّعات الحوار، وهي بطاقات يتم فتحها في نافذة جديدة من الرسائل والصفحات الرئيسية
يمكن لتطبيقات Chat إنشاء البطاقات باستخدام التطبيقات المصغّرة التالية:
تطبيقات مصغّرة لإدخال النماذج تطلب معلومات من المستخدمين يمكنك اختياريًا إضافة التحقّق من الصحة إلى تطبيقات مصغّرة لإدخال النماذج، لضمان إدخال المستخدمين للمعلومات وتنسيقها بشكل صحيح. يمكن لتطبيقات Chat استخدام التطبيقات المصغّرة التالية لإدخال النماذج:
- حقول إدخال النص
(
textInput) لإدخال نص حر أو مقترَح - إدخالات الاختيار
(
selectionInput) هي عناصر في واجهة المستخدم قابلة للاختيار، مثل مربعات اختيار وأزرار الاختيار والقوائم المنسدلة. يمكن أيضًا لعناصر واجهة المستخدم الخاصة بإدخال الاختيار تعبئة العناصر واقتراحها من بيانات Google Workspace (مثل مساحة Chat) أو مصدر بيانات ديناميكي. لمعرفة التفاصيل، يُرجى الاطّلاع على القسمَين التاليَين: إضافة قائمة منسدلة وإضافة قائمة متعددة الاختيارات. - أدوات اختيار التاريخ والوقت
(
dateTimePicker) لإدخالات التاريخ والوقت
- حقول إدخال النص
(
تطبيق مصغّر لزر ليتمكّن المستخدمون من إرسال القيم التي أدخلوها في البطاقة بعد أن ينقر المستخدم على الزر، يمكن لتطبيق Chat بعد ذلك معالجة المعلومات التي يتلقّاها.
في المثال التالي، تجمع البطاقة معلومات الاتصال باستخدام إدخال نصي وأداة اختيار التاريخ والوقت وإدخال الاختيار:
للاطّلاع على المزيد من الأمثلة على التطبيقات المصغّرة التفاعلية التي يمكنك استخدامها لجمع المعلومات، يُرجى مراجعة تصميم بطاقة أو مربّع حوار تفاعلي.
إضافة قائمة منسدلة
لتخصيص عناصر الاختيار أو السماح للمستخدمين باختيار عنصر واحد من مصدر بيانات ديناميكي، يمكن لتطبيقات Chat استخدام القوائم المنسدلة، وهي نوع من تطبيقات SelectionInput المصغّرة. على سبيل المثال، تعرض البطاقة التالية قائمة منسدلة يمكن للمستخدمين من خلالها الاختيار ديناميكيًا من قائمة جهات الاتصال:
يمكنك تعبئة العناصر لقائمة منسدلة من مصادر البيانات التالية:
- بيانات Google Workspace، والتي تشمل المستخدمين أو مساحات Chat
- مصادر البيانات الخارجية، مثل قاعدة بيانات ارتباطية
تعبئة العناصر من مصدر بيانات Google Workspace
لتعبئة العناصر من مصادر بيانات Google Workspace، مثل مستخدمي Google Workspace، حدِّد الحقل platformDataSource ضمن عنصر DataSourceConfig. على عكس أنواع الإدخال الأخرى، يمكنك
حذف
عناصر SelectionItem
لأنّ عناصر الاختيار هذه يتم الحصول عليها ديناميكيًا من
Google Workspace.
يعرض الرمز التالي قائمة منسدلة لمستخدمي Google Workspace:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "contacts",
"type": "DROPDOWN",
"label": "Select contact from organization",
"dataSourceConfigs": [
{
"platformDataSource": {
"commonDataSource": "USER"
},
"minCharactersTrigger": 1
}
]
}
}
]
}
]
}
تعبئة العناصر من مصدر بيانات خارجي
يمكن للقوائم المنسدلة أيضًا تعبئة العناصر من مصدر بيانات خارجي أو تابع لجهة خارجية. لاستخدام مصدر بيانات خارجي، عليك تحديد الحقل
remoteDataSource
ضمن عنصر
DataSourceConfig
يحتوي على الدالة التي ترسل طلبات بحث وتعرض عناصر من مصدر
البيانات.
لتقليل الطلبات إلى مصدر بيانات خارجي، يمكنك تضمين
العناصر المقترَحة التي تظهر في القائمة المنسدلة قبل أن يكتب المستخدمون في
القائمة. لتعبئة العناصر المقترَحة من مصدر بيانات خارجي، حدِّد عناصر
SelectionItem
ثابتة.
يعرض الرمز التالي قائمة منسدلة تطلب العناصر وتعبئتها من مصدر بيانات خارجي:
JSON
{
"sections": [
{
"header": "Section Header",
"widgets": [
{
"selectionInput": {
"name": "crm_leads",
"type": "DROPDOWN",
"label": "Select CRM Lead",
"dataSourceConfigs": [
{
"remoteDataSource": {
"function": "getCrmLeads"
},
"minCharactersTrigger": 2
}
],
"items": [
{
"text": "Suggested Lead 1",
"value": "lead-1"
}
]
}
}
]
}
]
}
للحصول على مثال كامل يوضّح كيفية عرض العناصر المقترَحة، يُرجى الاطّلاع على قسم اقتراح عناصر الاختيار.
إضافة قائمة متعددة الاختيارات
لتخصيص عناصر الاختيار أو السماح للمستخدمين باختيار عناصر من مصدر بيانات ديناميكي، يمكن لتطبيقات Chat استخدام قوائم الاختيار المتعدد، وهي نوع من تطبيقات SelectionInput المصغّرة. على سبيل المثال، تعرض البطاقة التالية قائمة متعددة الاختيارات
حيث يمكن للمستخدمين الاختيار ديناميكيًا من قائمة جهات الاتصال:
يمكنك تعبئة عناصر لقائمة متعددة الاختيارات من مصادر البيانات التالية:
- بيانات Google Workspace، والتي تشمل المستخدمين أو مساحات Chat التي يكون المستخدم عضوًا فيها لا تملأ القائمة سوى العناصر من مؤسسة Google Workspace نفسها.
- مصادر البيانات الخارجية، مثل قاعدة بيانات ارتباطية على سبيل المثال، يمكنك استخدام قوائم الاختيار المتعدّد لمساعدة المستخدم في الاختيار من قائمة العملاء المحتملين من نظام إدارة علاقات العملاء (CRM).
تعبئة العناصر من مصدر بيانات Google Workspace
لاستخدام مصادر بيانات Google Workspace، حدِّد الحقل
platformDataSource
في تطبيق SelectionInput المصغّر. على عكس أنواع الإدخال الأخرى، يمكنك
حذف
عناصر SelectionItem
لأنّ عناصر الاختيار هذه يتم الحصول عليها ديناميكيًا من
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
في التطبيق المصغّر SelectionInput الذي يحتوي على الدالة التي ترسل طلبات البحث
وتعرض العناصر من مصدر البيانات.
لتقليل الطلبات إلى مصدر بيانات خارجي، يمكنك تضمين العناصر المقترَحة التي تظهر في قائمة الاختيار المتعدّد قبل أن يكتب المستخدمون في القائمة. على سبيل المثال، يمكنك تعبئة جهات الاتصال التي تم البحث عنها مؤخرًا للمستخدم. لتعبئة العناصر المقترَحة من مصدر بيانات خارجي، حدِّد عناصر
SelectionItem
ثابتة.
تعرض عينة التعليمات البرمجية التالية قائمة متعددة الاختيارات تستعلم عن العناصر وتعبئتها من مصدر بيانات خارجي:
Node.js
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
Python
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
جافا
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
برمجة التطبيقات
يرسل هذا المثال رسالة بطاقة من خلال عرض ملف JSON للبطاقة. يمكنك أيضًا استخدام خدمة بطاقات "برمجة تطبيقات Google".
للحصول على مثال كامل يوضّح كيفية عرض العناصر المقترَحة، يُرجى الاطّلاع على قسم اقتراح عناصر الاختيار.
تلقّي البيانات من التطبيقات المصغّرة التفاعلية
عندما ينقر المستخدمون على زر، يتم تشغيل
إجراء
تطبيق Chat الخاص به مع معلومات عن التفاعل. في
commonEventObject
لحمولة الحدث، يحتوي العنصر formInputs على أي قيم يُدخلها
المستخدم.
يمكنك استرداد القيم من الكائن
event.commonEventObject.formInputs.WIDGET_NAME، حيث
WIDGET_NAME هو حقل name الذي حددته للأداة.
يتم عرض القيم كنوع بيانات محدّد لودجت.
يوضّح ما يلي جزءًا من كائن حدث أدخل فيه المستخدم قيمًا لكل تطبيق مصغّر:
{
"commonEventObject": { "formInputs": {
"contactName": { "stringInputs": {
"value": ["Kai 0"]
}},
"contactBirthdate": { "dateInput": {
"msSinceEpoch": 1000425600000
}},
"contactType": { "stringInputs": {
"value": ["Personal"]
}}
}}
}
لتلقّي البيانات، يعالج تطبيق Chat كائن الحدث للحصول على القيم التي يُدخلها المستخدمون في التطبيقات المصغّرة. يوضّح الجدول التالي كيفية الحصول على قيمة لعنصر واجهة مستخدم معيّن لإدخال البيانات في النموذج. بالنسبة إلى كل تطبيق مصغّر، يعرض الجدول نوع البيانات التي يقبلها التطبيق المصغّر، ومكان تخزين القيمة في كائن الحدث، ومثال على القيمة.
| التطبيق المصغَّر لإدخال النموذج | نوع بيانات الإدخال | قيمة الإدخال من كائن الحدث | مثال على القيمة |
|---|---|---|---|
textInput |
stringInputs |
event.commonEventObject.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
للحصول على القيمة الأولى أو الوحيدة، event.commonEventObject.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker لا يقبل سوى التواريخ. |
dateInput |
event.commonEventObject.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
بعد أن يتلقّى تطبيق Chat البيانات، يمكنه تنفيذ أيٍّ مما يلي:
- بالنسبة إلى البطاقات التي تحتوي على قائمة اختيار متعدد، يمكنك تعبئة العناصر أو اقتراحها استنادًا إلى ما يكتبه المستخدم في القائمة.
- انقل البيانات إلى بطاقة أخرى، ليتمكّن المستخدم من مراجعة معلوماته أو الانتقال إلى القسم التالي من النموذج.
- الرد على المستخدم لتأكيد أن المستخدم قد أكمل النموذج بنجاح.
اقتراح عناصر الاختيار
إذا كانت البطاقة تحتوي على قائمة متعددة الاختيارات أو قائمة منسدلة
تعبئ العناصر من مصدر بيانات خارجي،
يمكن لتطبيق Chat عرض العناصر المقترَحة استنادًا إلى ما
يكتبه المستخدمون في القائمة. على سبيل المثال، إذا بدأ المستخدم في كتابة Atl لقائمة
تتضمّن مدنًا في الولايات المتحدة، يمكن لتطبيق Chat
اقتراح Atlanta تلقائيًا قبل أن ينتهي المستخدم
من الكتابة. يمكن أن يقترح تطبيق Chat ما يصل إلى 100
عنصر.
لاقتراح العناصر وتعبئتها ديناميكيًا في إدخال اختيار، يجب أن تحدّد أداة SelectionInput في البطاقة دالة تطلب مصدر البيانات الخارجي. بالنسبة إلى القوائم المتعددة الاختيارات، يمكنك تحديد الحقل
externalDataSource. بالنسبة إلى القوائم المنسدلة، يمكنك تحديد الحقل remoteDataSource ضمن عنصر DataSourceConfig.
يمكنك أيضًا ضبط عدد الأحرف التي يكتبها المستخدم قبل أن تعرض القائمة الاقتراحات. بالنسبة إلى القوائم المتعددة الاختيارات، اضبط الحقل
multiSelectMinQueryLength. بالنسبة إلى القوائم المنسدلة، اضبط حقل min_characters_trigger ضمن DataSourceConfig.
لعرض العناصر المقترَحة، يجب أن تنفّذ الدالة ما يلي:
- معالجة كائن حدث، يتلقّاه تطبيق Chat عندما يكتب المستخدمون في القائمة.
- من كائن الحدث، احصل على القيمة التي يكتبها المستخدم، والتي يتم تمثيلها في الحقل
event.commonEventObject.parameters["autocomplete_widget_query"]. - يمكنك الاستعلام عن مصدر البيانات باستخدام قيمة إدخال المستخدم للحصول على
SelectionItemsواحد أو أكثر لاقتراحه على المستخدم. - يمكنك عرض السلع المقترَحة من خلال عرض الإجراء
RenderActionsمع عنصرmodifyCard.
يوضّح نموذج الرمز البرمجي التالي كيفية اقتراح تطبيق Chat
للعناصر ديناميكيًا في قائمة الاختيار المتعدّد على بطاقة. عندما يكتب المستخدم في القائمة، تستعلم الدالة أو نقطة النهاية المقدَّمة في حقل externalDataSource الخاص بعنصر واجهة المستخدم عن مصدر بيانات خارجي، وتقترح عناصر يمكن للمستخدم اختيارها.
Node.js
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
Python
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
جافا
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي ترسل طلبات البحث إلى مصدر البيانات الخارجي.
برمجة التطبيقات
يرسل هذا المثال رسالة بطاقة من خلال عرض ملف JSON للبطاقة. يمكنك أيضًا استخدام خدمة بطاقات "برمجة تطبيقات Google".
نقل البيانات إلى بطاقة أخرى
بعد أن يرسل المستخدم معلومات من بطاقة، قد تحتاج إلى عرض بطاقات إضافية لتنفيذ أي مما يلي:
- ساعِد المستخدمين في إكمال النماذج الطويلة من خلال إنشاء أقسام مميزة.
- اسمح للمستخدمين بمعاينة المعلومات وتأكيدها من البطاقة الأولية، حتى يتمكنوا من مراجعة إجاباتهم قبل الإرسال.
- تعبئة الأجزاء المتبقية من النموذج ديناميكيًا على سبيل المثال، لمطالبة المستخدمين بإنشاء موعد، يمكن لتطبيق Chat عرض بطاقة أولية تطلب سبب الموعد، ثم ملء بطاقة أخرى توفّر الأوقات المتاحة استنادًا إلى نوع الموعد.
لنقل البيانات التي تم إدخالها من البطاقة الأولية، يمكنك إنشاء التطبيق المصغّر button باستخدام actionParameters الذي يحتوي على name للتطبيق المصغّر والقيمة التي يُدخلها المستخدم، كما هو موضّح في المثال التالي:
Node.js
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي تعالج
النقرات على الأزرار.
Python
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي تعالج
النقرات على الأزرار.
جافا
استبدِل FUNCTION_URL بنقطة نهاية HTTP التي تعالج
النقرات على الأزرار.
برمجة التطبيقات
يرسل هذا المثال رسالة بطاقة من خلال عرض ملف JSON للبطاقة. يمكنك أيضًا استخدام خدمة بطاقات "برمجة تطبيقات Google".
عندما ينقر المستخدم على الزر، يتلقّى تطبيق Chat كائن حدث يمكنك من خلاله تلقّي البيانات.
الردّ على نموذج تم إرساله
بعد تلقّي البيانات من رسالة بطاقة أو مربّع حوار، يستجيب تطبيق Chat إما من خلال تأكيد الاستلام أو عرض رسالة خطأ.
في المثال التالي، يرسل تطبيق Chat رسالة نصية لتأكيد تلقّيه نموذجًا تم إرساله من رسالة بطاقة بنجاح.
Node.js
Python
جافا
برمجة التطبيقات
يرسل هذا المثال رسالة بطاقة من خلال عرض ملف JSON للبطاقة. يمكنك أيضًا استخدام خدمة بطاقات "برمجة تطبيقات Google".
لمعالجة مربّع حوار وإغلاقه، عليك عرض عنصر
RenderActions
يحدّد ما إذا كنت تريد إرسال رسالة تأكيد أو تعديل
الرسالة أو البطاقة الأصلية أو إغلاق مربّع الحوار فقط. للاطّلاع على الخطوات، يُرجى مراجعة مقالة إغلاق مربّع حوار.
تحديد المشاكل وحلّها
يقدّم هذا القسم خطوات تحديد المشاكل وحلّها لرموز أخطاء معيّنة وسلوكيات وقت التشغيل عند التفاعل مع مربّعات الحوار في Chat.
تفاعلات مربّعات الحوار تعرض رسالة "حدث خطأ غير محدَّد أثناء استدعاء الإضافة"
عند التفاعل مع مربّع حوار، إذا ظهرت لك سجلّات أخطاء تتضمّن الرسالة "حدث خطأ غير محدّد أثناء استدعاء الإضافة" والرمز 13، يشير ذلك عادةً إلى خطأ داخلي أو أنّ نقطة نهاية HTTP لتطبيق Chat تعذّر عليها معالجة الطلب أو عرض ردّ صالح.
لتحديد المشاكل وحلّها:
- تحقَّق من سجلّات نقطة نهاية HTTP بحثًا عن أي استثناءات أو أعطال لم تتم معالجتها.
- تأكَّد من أنّ نقطة النهاية تستجيب للطلبات في غضون 30 ثانية. إذا استغرقت نقطة النهاية أكثر من 30 ثانية للتشغيل، لن يتمكن Chat من معالجة الاستجابة ويفشل التفاعل. لمعرفة التفاصيل، يُرجى الاطّلاع على الحدود القصوى للمعدّل وأفضل الممارسات.
- تأكَّد من أنّ نقطة النهاية تعرض ردًا صالحًا. بالنسبة إلى عمليات إرسال مربّعات الحوار،
يجب أن تعرض نقطة النهاية
عنصر
RenderActionsبتنسيق JSON الصحيح. إذا كان الردّ غير صحيح أو لا يحتوي على الحقول المطلوبة، قد يتعذّر التفاعل مع مربّع الحوار.
عندما يعرض تطبيق Google Chat أو بطاقة خطأً، تعرض واجهة Chat رسالة "حدث خطأ". أو "تتعذّر معالجة طلبك". في بعض الأحيان، لا تعرض واجهة مستخدم Chat أي رسالة خطأ، ولكن ينتج عن تطبيق Chat أو البطاقة نتيجة غير متوقعة، على سبيل المثال، قد لا تظهر رسالة بطاقة.
على الرغم من أنّ رسالة الخطأ قد لا تظهر في واجهة مستخدم Chat، تتوفّر رسائل خطأ وصفية وبيانات السجلّ لمساعدتك في إصلاح الأخطاء عند تفعيل تسجيل الأخطاء لتطبيقات Chat. للحصول على مساعدة في عرض الأخطاء وتصحيحها وإصلاحها، يُرجى الاطّلاع على مقالة تحديد أخطاء Google Chat وحلّها.
المواضيع ذات الصلة
- يمكنك الاطّلاع على نموذج "إدارة جهات الاتصال"، وهو تطبيق في Chat يطلب من المستخدمين إكمال نموذج تواصل من رسائل البطاقات ومربّعات الحوار.
- فتح مربّعات الحوار التفاعلية
تطبيقات Chat التي ليست إضافات: قراءة بيانات النماذج التي يُدخلها المستخدمون في البطاقات
تنطبق المستندات التالية على تطبيقات Chat التي ليست إضافات Google Workspace. لنقل تطبيق Chat ليس إضافة، يُرجى الاطّلاع على المقالة تحويل تطبيق Google Chat إلى إضافة Google Workspace.
إنشاء نماذج باستخدام البطاقات
للاطّلاع على مثال لتطبيق Chat ليس إضافة ويستخدم نموذج تواصل مع حقل إدخال نص وأداة اختيار التاريخ والوقت وحقل اختيار، يُرجى مراجعة الرمز البرمجي التالي:
Node.js
Python
جافا
برمجة التطبيقات
تلقّي البيانات من التطبيقات المصغّرة التفاعلية
عندما ينقر المستخدمون على زر، تتلقّى تطبيقات Chat التي ليست إضافات حدث تفاعل يعتمد على موقع الزر:
إذا كان الزر في رسالة أو مربّع حوار، تتلقّى تطبيقات Chat التي ليست إضافات حدث تفاعل
CARD_CLICKEDيحتوي على معلومات عن التفاعل. تحتوي حمولة أحداث التفاعلCARD_CLICKEDعلى عنصرcommon.formInputs(event.common.formInputs) مع أي قيم يُدخلها المستخدم.يمكنك استرداد القيم من الكائن
common.formInputs.WIDGET_NAME، حيث WIDGET_NAME هو حقلnameالذي حددته للأداة. يتم عرض القيم كنوع بيانات محدّد للأداة (يتم تمثيله كعنصرInputs).يوضح ما يلي جزءًا من حدث تفاعل
CARD_CLICKEDحيث أدخل المستخدم قيمًا لكل عنصر واجهة مستخدم:HTTP
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }برمجة التطبيقات
{ "type": "CARD_CLICKED", "common": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }إذا كان الزر في صفحة رئيسية، ستتلقّى تطبيقات Chat التي ليست إضافات حدث تفاعل
SUBMIT_FORM. تحتوي حمولة حدث التفاعل على عنصرcommonEventObject.formInputs(event.commonEventObject.formInputs) مع أي قيم يُدخلها المستخدم.يمكنك استرداد القيم من الكائن
commonEventObject.formInputs.WIDGET_NAME، حيث WIDGET_NAME هو حقلnameالذي حددته للأداة. يتم عرض القيم كنوع بيانات محدّد للأداة (يتم تمثيله كعنصرInputs).يوضح ما يلي جزءًا من حدث تفاعل
SUBMIT_FORMحيث أدخل المستخدم قيمًا لكل عنصر واجهة مستخدم:HTTP
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "stringInputs": { "value": ["Kai 0"] }}, "contactBirthdate": { "dateInput": { "msSinceEpoch": 1000425600000 }}, "contactType": { "stringInputs": { "value": ["Personal"] }} }} }برمجة التطبيقات
{ "type": "SUBMIT_FORM", "commonEventObject": { "formInputs": { "contactName": { "": { "stringInputs": { "value": ["Kai 0"] }}}, "contactBirthdate": { "": { "dateInput": { "msSinceEpoch": 1000425600000 }}}, "contactType": { "": { "stringInputs": { "value": ["Personal"] }}} }} }
لتلقّي البيانات، يعالج تطبيق Chat الذي لا يُعدّ إضافة حدث التفاعل للحصول على القيم التي يُدخلها المستخدمون في التطبيقات المصغّرة. يوضّح الجدول التالي كيفية الحصول على قيمة عنصر واجهة مستخدم معيّن لإدخال البيانات في النموذج. بالنسبة إلى كل تطبيق مصغّر، يعرض الجدول نوع البيانات الذي يقبله التطبيق المصغّر، ومكان تخزين القيمة في حدث التفاعل، ومثال على القيمة.
| التطبيق المصغَّر لإدخال النموذج | نوع بيانات الإدخال | قيمة الإدخال من حدث التفاعل | مثال على القيمة |
|---|---|---|---|
textInput |
stringInputs |
event.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
للحصول على القيمة الأولى أو الوحيدة، event.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker لا يقبل سوى التواريخ. |
dateInput |
event.common.formInputs.contactBirthdate.dateInput.msSinceEpoch. |
1000425600000 |
نقل البيانات إلى بطاقة أخرى
لنقل البيانات التي تم إدخالها من البطاقة الأولية في
تطبيق Chat ليس إضافة،
يمكنك إنشاء تطبيق مصغّر button باستخدام
actionParameters
يحتوي على name للتطبيق المصغّر والقيمة التي يُدخلها المستخدم، كما هو موضّح
في المثال التالي:
Node.js
Python
جافا
برمجة التطبيقات
عندما ينقر المستخدم على الزر، يتلقّى تطبيق Chat الذي ليس
إضافة
حدث تفاعل CARD_CLICKED يمكنك من خلاله
تلقّي البيانات.
الردّ على نموذج تم إرساله
في المثال التالي، يرسل تطبيق Chat ليس إضافة رسالة نصية لتأكيد تلقّيه نموذجًا تم إرساله من رسالة مربّع حوار أو بطاقة:
Node.js
Python
جافا
برمجة التطبيقات
لمعالجة مربّع حوار وإغلاقه في تطبيق Chat ليس إضافة، يمكنك عرض عنصر ActionResponse يحدّد ما إذا كنت تريد إرسال رسالة تأكيد أو تعديل الرسالة أو البطاقة الأصلية أو إغلاق مربّع الحوار فقط. للاطّلاع على الخطوات، يُرجى مراجعة مقالة إغلاق مربّع حوار.