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


تطلب تطبيقات Chat معلومات من المستخدمين لتنفيذ إجراءات في Chat أو خارجه، بما في ذلك الطرق التالية:
- ضبط الإعدادات على سبيل المثال، للسماح للمستخدمين بتخصيص إعدادات الإشعارات أو ضبط تطبيق Chat وإضافته إلى مساحة واحدة أو أكثر
- إنشاء معلومات أو تعديلها في تطبيقات Google Workspace الأخرى على سبيل المثال، يمكنك السماح للمستخدمين بإنشاء حدث في "تقويم Google".
- السماح للمستخدمين بالوصول إلى الموارد وتعديلها في تطبيقات أو خدمات ويب أخرى على سبيل المثال، يمكن أن يساعد تطبيق Chat المستخدمين في تعديل حالة طلب الدعم مباشرةً من مساحة Chat.
المتطلبات الأساسية
Node.js
تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها لإنشاء تطبيق Chat تفاعلي باستخدام خدمة HTTP، أكمِل الخطوات الأساسية هذه.
Python
تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها لإنشاء تطبيق Chat تفاعلي باستخدام خدمة HTTP، أكمِل الخطوات الأساسية هذه.
Java
تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها لإنشاء تطبيق Chat تفاعلي باستخدام خدمة HTTP، أكمِل الخطوات الأساسية هذه.
برمجة تطبيقات
تطبيق Google Chat يتلقّى أحداث التفاعل ويردّ عليها لإنشاء تطبيق Chat تفاعلي في Apps Script، أكمِل الخطوات الأساسية هذه.
إنشاء نماذج باستخدام البطاقات
لجمع المعلومات، صمّمت تطبيقات Chat النماذج وعناصر الإدخال الخاصة بها، ودمجت هذه النماذج في البطاقات. لعرض البطاقات للمستخدمين، يمكن لتطبيقات Chat استخدام واجهات Chat التالية:
- الرسائل التي تحتوي على بطاقة واحدة أو أكثر
- الصفحات الرئيسية: وهي بطاقة تظهر من علامة التبويب الصفحة الرئيسية في الرسائل المباشرة باستخدام تطبيق Chat.
- المحادثات، وهي بطاقات يتم فتحها في نافذة جديدة من الرسائل والصفحات الرئيسية
يمكن لتطبيقات Chat إنشاء البطاقات باستخدام التطبيقات المصغّرة التالية:
التطبيقات المصغّرة لإدخال البيانات في النماذج التي تطلب معلومات من المستخدِمين يمكنك اختياريًا إضافة عمليات التحقّق إلى التطبيقات المصغّرة لإنشاء النماذج، لضمان إدخال المستخدمين للمعلومات وتنسيقها بشكلٍ صحيح. يمكن لتطبيقات Chat استخدام التطبيقات المصغّرة التالية لإدخال النماذج:
- مدخلات نصية
(
textInput
) للنص الذي لا يتّبع تنسيقًا معيّنًا أو النص المقترَح - مدخلات الاختيار
(
selectionInput
) هي عناصر واجهة مستخدم قابلة للاختيار، مثل مربّعات الاختيار، وأزرار الاختيار، والقوائم المنسدلة. يمكن أيضًا لأداة الاختيار المخصّصة لإدخال البيانات تعبئة العناصر من مصادر بيانات ثابتة أو ديناميكية. على سبيل المثال، يمكن للمستخدمين الاختيار من قائمة مساحات Chat التي ينتمون إليها. - أداة اختيار التاريخ والوقت
(
dateTimePicker
) لإدخال التاريخ والوقت
- مدخلات نصية
(
تطبيق مصغّر زر لكي يتمكّن المستخدمون من إرسال القيم التي أدخلوها في البطاقة بعد أن ينقر المستخدم على الزر، يمكن لتطبيق Chat معالجة المعلومات التي يتلقّاها.
في المثال التالي، تجمع بطاقة معلومات الاتصال باستخدام إدخال نصي وأداة اختيار التاريخ والوقت وإدخال اختيار:
للحصول على مثال على تطبيق Chat يستخدم نموذج الاتصال هذا، اطّلِع على الرمز البرمجي التالي:
Node.js
Python
Java
برمجة تطبيقات
لمزيد من الأمثلة على التطبيقات المصغّرة التفاعلية التي يمكنك استخدامها لجمع المعلومات، اطّلِع على مقالة تصميم بطاقة أو مربّع حوار تفاعلي.
تلقّي البيانات من التطبيقات المصغّرة التفاعلية
عندما ينقر المستخدمون على زر، تتلقّى تطبيقات Chat حدث تعامل يعتمد على موضع الزر:
إذا كان الزرّ في رسالة أو مربّع حوار، تتلقّى تطبيقات Chat
CARD_CLICKED
حدث تفاعل يحتوي على معلومات عن التفاعل. تحتوي الحمولة لأحداثCARD_CLICKED
التفاعل على عنصر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
مع أي قيم يُدخلها المستخدم.يمكنك استرداد القيم من العنصر
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 عرض بطاقة أولية تطلب سبب الموعد، ثم preenchimentoبطاقة أخرى تقدّم الأوقات المتاحة استنادًا إلى نوع الموعد.
لنقل بيانات الإدخال من البطاقة الأولية، يمكنك إنشاء button
أداة مصغّرة باستخدام actionParameters
التي تحتوي على name
الأداة المصغّرة والقيمة التي يُدخلها المستخدم، كما هو موضّح
في المثال التالي:
Node.js
Python
Java
برمجة تطبيقات
عندما ينقر أحد المستخدمين على الزر، يتلقّى تطبيق Chat حدث تفاعل
CARD_CLICKED
يمكنك من خلاله
تلقّي البيانات.
الردّ على نموذج تم إرساله
بعد تلقّي البيانات من رسالة بطاقة أو مربّع حوار، يردّ تطبيق Chat إما من خلال تأكيد الاستلام أو عرض خطأ.
في المثال التالي، يُرسِل تطبيق Chat رسالة ملف شخصي لتأكيد استلام نموذج تم إرساله من ملف شخصي أو رسالة بطاقة.
Node.js
Python
Java
برمجة تطبيقات
لمعالجة مربّع حوار وإغلاقه، يمكنك عرض عنصر
ActionResponse
يحدّد ما إذا كنت تريد إرسال رسالة تأكيد أو تعديل
الرسالة أو البطاقة الأصلية أو إغلاق مربّع الحوار فقط. لمعرفة الخطوات، يُرجى الاطّلاع على مقالة
إغلاق مربّع حوار.
تحديد المشاكل وحلّها
عندما يعرض تطبيق Google Chat أو البطاقة خطأ، تظهر رسالة في واجهة Chat تفيد بأنّ "حدث خطأ". أو "تعذّرت معالجة طلبك". في بعض الأحيان، لا يعرض واجهة مستخدم Chat أي رسالة خطأ، ولكن ينتج عن تطبيق Chat أو البطاقة نتيجة غير متوقّعة، على سبيل المثال، قد لا تظهر رسالة البطاقة.
على الرغم من أنّه قد لا تظهر رسالة خطأ في واجهة مستخدم Chat، تتوفّر رسائل خطأ وصفية وبيانات السجلّ لمساعدتك في حلّ الأخطاء عند تفعيل تسجيل الأخطاء في تطبيقات Chat. للحصول على مساعدة في عرض الأخطاء وتصحيحها وتحديد الأخطاء البرمجية، يُرجى الاطّلاع على مقالة تحديد أخطاء Google Chat وحلّها.
مواضيع ذات صلة
- الاطّلاع على نموذج "مدير جهات الاتصال"، وهو تطبيق Chat يطلب من المستخدمين إكمال نموذج اتصال من رسائل البطاقات ومحادثات المستخدمين
- فتح مربّعات حوار تفاعلية