توضّح هذه الصفحة كيف يمكن لتطبيق Google Chat تلقّي تفاعلات المستخدمين في Google Chat والردّ عليها.
لإنشاء واجهات تفاعلية لتطبيقات Chat، يمكنك استخدام المكوّنات التالية:
- عوامل التشغيل: الطرق التي يمكن لمستخدمي Google Chat من خلالها استدعاء تطبيق Chat، مثل إضافته إلى مساحة أو إرسال رسالة إليه
- عناصر الحدث: البيانات التي تتلقّاها تطبيقات Chat من المشغّلات أو التفاعلات مع واجهة المستخدم
- الإجراءات: هي الطرق التي يمكن لتطبيقات Chat من خلالها الاستجابة للتفاعلات، مثل إرسال الرسائل أو عرض واجهة مستخدم مستندة إلى البطاقات.
يمكن لتطبيقات Chat إنشاء واجهات وعرضها بالطرق التالية:
- الرسائل التي يمكن أن تحتوي على نص وبطاقات ثابتة أو تفاعلية وأزرار ملحقة
- الصفحات الرئيسية (الصفحة الرئيسية للتطبيق) التي تظهر في علامة التبويب الشاشة الرئيسية ضمن رسائل مباشرة على الخاص مع تطبيق Chat.
- مربّعات الحوار: هي بطاقات تفتح في نافذة جديدة وتطلب عادةً من المستخدمين إرسال معلومات.
- معاينات الروابط، وهي بطاقات تعرض معاينة لمعلومات حول خدمة خارجية
المتطلبات الأساسية
- حساب Google Workspace تابع لـ Business أو Enterprise مع إمكانية الوصول إلى Google Chat
- أنشئ مشروعًا على Google Cloud.
- ضبط شاشة طلب الموافقة المتعلّقة ببروتوكول OAuth
- تفعيل واجهة برمجة تطبيقات Google Chat وضبط إعداداتها
طريقة عمل تفاعلات المستخدمين
عندما يتفاعل مستخدم مع تطبيق Chat، يستدعي Google Chat مشغّلاً تم إعداده ويرسل عنصر حدث إلى نقطة النهاية أو الدالة الخاصة بتطبيق Chat. يعالج تطبيق Chat عنصر الحدث ويمكنه إما عرض إجراء بشكل متزامن في غضون 30 ثانية أو الرد بشكل غير متزامن باستخدام Chat API.
يوضّح المخطّط التالي كيفية معالجة تطبيقات Google Chat لتفاعلات المستخدمين والردّ عليها:
العوامل التي تؤدي إلى الظهور
المشغّلات هي الطرق المحدّدة التي يستدعي بها المستخدمون تطبيق Chat باستخدام واجهة مستخدم Chat، مثل استخدام الإشارات @أو أوامر التطبيق.
يعرض الجدول التالي مشغّلات Chat ووصفًا لها وكيفية استجابة تطبيقات Chat عادةً:
| Trigger | الوصف | الردّ النموذجي |
|---|---|---|
| تمت الإضافة إلى المساحة |
يضيف المستخدم تطبيق Chat إلى مساحة، أو يثبّت مشرف Google Workspace تطبيق Chat في مساحات الرسائل المباشرة للمستخدمين في مؤسسته. لمعرفة المزيد عن تطبيقات Chat التي يثبّتها المشرفون، يُرجى الاطّلاع على مقالة تثبيت تطبيقات Marketplace في نطاقك في مستندات "مساعدة مشرف Google Workspace". |
يرسل تطبيق Chat رسالة تعريفية توضّح وظيفة التطبيق وكيفية تفاعل المستخدمين في المساحة معه. |
| رسالة |
يتفاعل المستخدم مع تطبيق Chat في رسالة بإحدى الطرق التالية:
|
يردّ تطبيق Chat استنادًا إلى محتوى الرسالة. على سبيل المثال، يردّ تطبيق Chat برسالة أو يرفق بطاقة معاينة للرابط أو يقترح عناصر في قائمة اختيار متعدّد. |
| تمت إزالته من المساحة |
يزيل المستخدم تطبيق Chat من مساحة، أو يلغي مشرف Google Workspace تثبيت تطبيق Chat لمستخدم في مؤسسته. لا يمكن للمستخدمين إزالة تطبيقات Chat التي ثبَّتها المشرف. إذا كان المستخدم قد ثبَّت تطبيق Chat من قبل، سيظل التطبيق مثبَّتًا بغض النظر عمّا إذا حاول مشرف Google Workspace إلغاء تثبيته. |
يزيل تطبيق Chat أي إشعارات واردة تم ضبطها للمساحة (مثل حذف webhook) ويمحو أي مساحة تخزين داخلية. لا يمكن لتطبيقات المحادثة الرد برسائل على هذا المشغّل لأنّها لم تعُد عضوًا في المساحة. |
| أوامر التطبيقات |
يستدعي المستخدم أمرًا في تطبيق Chat (مثل أمر يبدأ بشرطة مائلة أو أمر سريع أو إجراء على رسالة). |
يستجيب تطبيق Chat للأمر. على سبيل المثال، يمكن أن يردّ برسالة أو يفتح مربّع حوار. |
| الصفحة الرئيسية للتطبيق |
يفتح المستخدم علامة التبويب الصفحة الرئيسية في مساحة رسالة مباشرة على الخاص باستخدام تطبيق Chat، أو يتفاعل مع تطبيق مصغّر على بطاقة الصفحة الرئيسية. |
يعرض تطبيق Chat عنصر RenderActions الذي يرسل بطاقة الصفحة الرئيسية (pushCard) أو يحدّث بطاقة الصفحة الرئيسية المعروضة (updateCard).
|
يمكنك ضبط نقاط النهاية أو وظائف معاودة الاتصال لهذه المشغّلات في وحدة تحكّم Google Cloud على صفحة الإعدادات في Chat API. للحصول على تعليمات مفصّلة، يُرجى الاطّلاع على إعداد Google Chat API.
ضبط الطلبات الأولية
تساعد الطلبات الأولية المستخدمين في التعرّف على وظائف تطبيق Chat عند فتح رسالة مباشرة على الخاص فارغة بينك وبين تطبيقك. يمكنك ضبط ما يصل إلى ثلاثة طلبات أولية.
لإضافة طلبات جاهزة لبدء المحادثة وضبطها، اتّبِع الخطوات التالية:
في وحدة تحكّم Google Cloud، انتقِل إلى صفحة الإعدادات الخاصة بواجهة برمجة تطبيقات Chat:
ضمن الميزات التفاعلية، ابحث عن عبارات بدء المحادثة وانقر على إضافة عبارة.
في حقل الترتيب (من 1 إلى 3)، أدخِل رقمًا من
1إلى3لتحديد ترتيب العرض.ضمن اختيار النوع، اختَر طريقة عمل الطلب:
- طلب نصي: يملأ خانة إدخال المحتوى بنص محدّد مسبقًا عندما ينقر المستخدم على شريحة الطلب.
- موجه الأوامر: ينفّذ أمرًا مسجّلاً من أوامر تبدأ بشرطة مائلة أو الأوامر السريعة عند النقر عليه. لا يمكن اختيار الأوامر التي تتطلّب وسيطات إضافية.
اضبط الطلب استنادًا إلى نوع التحديد:
إذا اخترت "طلب نصي":
- في حقل العنوان، أدخِل عنوان الطلب الذي يظهر على الشريحة (30 حرفًا كحدّ أقصى).
- في نص الطلب، أدخِل النص الذي يظهر في خانة إدخال المحتوى (60 حرفًا كحد أقصى).
- اختياري: أضِف عناوين ونصوصًا مترجَمة للمستخدمين بلغات أخرى:
- ضمن الطلبات المترجمة، انقر على إضافة لغة.
- في اللغة، اختَر لغة معتمَدة من القائمة المنسدلة.
- في العنوان المتوافق مع اللغة المحلية، أدخِل العنوان المتوافق مع اللغة المحلية (30 حرفًا كحدّ أقصى).
- في نص الطلب المترجَم، أدخِل نص الطلب المترجَم (60 حرفًا كحد أقصى).
- كرِّر الخطوات لإضافة المزيد من اللغات حسب الحاجة.
في حال اختيار "موجه الأوامر":
- في أمر يبدأ بشرطة مائلة / الأمر السريع، اختَر الأمر من القائمة المنسدلة.
انقر على تم، ثم على حفظ في أسفل الصفحة.
التعامل مع عمليات إعادة محاولة طلبات HTTP إلى خدمتك
إذا تعذّر إرسال طلب HTTPS إلى خدمتك (مثل انتهاء المهلة أو حدوث عطل مؤقت في الشبكة أو ظهور رمز حالة HTTPS غير 2xx)، قد يعيد Google Chat محاولة التسليم عدة مرات خلال بضع دقائق (ولكن هذا ليس مضمونًا). نتيجةً لذلك، قد يتلقّى تطبيق Chat الحدث نفسه عدّة مرات في بعض الحالات. إذا اكتمل الطلب بنجاح ولكن تم عرض حمولة استجابة غير صالحة، لن يعيد Google Chat محاولة إرسال الطلب.
عناصر الحدث
تتلقّى تطبيقات الدردشة عناصر الأحداث عند تشغيل مشغّل Chat أو عندما يتفاعل مستخدمو Chat مع واجهة مستخدم من تطبيق Chat (مثل النقر على زر أو إرسال مربّع حوار). يتيح لك عنصر الحدث استخدام بيانات التفاعل للاستجابة لواجهة مستخدم أو تعديلها.
حمولة عنصر الحدث
يتضمّن كل عنصر من عناصر أحداث Chat
commonEventObject
مع تفاصيل المضيف والمنصة (hostApp: "CHAT" وclientPlatform وuserLocale وuserTimezone وparameters وformInputs) وعنصر
chat
يحتوي على سياق خاص بـ Chat:
- بالنسبة إلى مشغّل صفحة التطبيق الرئيسية (عندما يفتح المستخدم علامة التبويب الصفحة الرئيسية في رسالة مباشرة على الخاص مع تطبيق Chat)، يحتوي العنصر
chatعلىchat.userوchat.eventTimeبدون حقلpayloadموحّد. عندما ينقر المستخدم على زر في بطاقة الصفحة الرئيسية، يتضمّن عنصر الحدثchat.buttonClickedPayloadبالإضافة إلىcommonEventObject.parameters(وcommonEventObject.formInputsإذا كانت البطاقة تحتوي على إدخالات نموذج). - بالنسبة إلى التفاعلات مع المساحات والرسائل (تمت الإضافة إلى المساحة أو الرسالة أو تمت الإزالة من المساحة أو أمر التطبيق أو التفاعلات مع الأزرار والأدوات)، يتضمّن العنصر
chatكلاً منchat.userوchat.spaceوchat.eventTimeوحمولة التفاعل المقابلة:-
messagePayload: يحتوي علىspaceوmessageوconfigCompleteRedirectUriعندما يرسل المستخدم رسالة. addedToSpacePayload: يحتوي علىspaceوinteractionAddوconfigCompleteRedirectUriعند إضافة تطبيق Chat إلى مساحة.removedFromSpacePayload: يحتوي علىspaceعند إزالة تطبيق Chat من مساحة.-
buttonClickedPayload: يحتوي علىspaceوmessageوisDialogEventوdialogEventTypeعندما ينقر المستخدم على زر في بطاقة أو مربّع حوار. -
widgetUpdatedPayload: يحتوي علىspaceعندما يتفاعل المستخدم مع أداة، مثل الكتابة في قائمة اختيار متعدّد تتضمّن مصدر بيانات خارجيًا. -
appCommandPayload: يحتوي علىspaceوmessageوappCommandMetadataوisDialogEventوdialogEventTypeوconfigCompleteRedirectUriعندما ينفّذ المستخدم أمر تطبيق.
-
لمزيد من المعلومات حول عناصر أحداث الإضافات في Chat وتطبيقات Google Workspace الأخرى، يُرجى الاطّلاع على عناصر الأحداث.
تقديم ردّ
يوضّح هذا القسم كيف تستخدم تطبيقات Chat الإجراءات للردّ بشكل متزامن على تفاعلات المستخدمين.
للردّ بإجراء، يجب أن يستجيب تطبيق Chat خلال 30 ثانية، ويجب أن ينطبق الردّ على المساحة التي حدث فيها التفاعل. لا تتطلّب هذه الردود المتزامنة إجراء مصادقة. إذا كان تطبيق Chat يحتاج إلى أكثر من 30 ثانية أو يحتاج إلى تنفيذ إجراء خارج المساحة، يمكنك إعداد المصادقة والرد بشكل غير متزامن باستخدام Google Chat API.
للردّ على تفاعلات المستخدمين بشكل متزامن، يعالج تطبيق Chat عنصر الحدث الوارد ويعرض أحد عناصر JSON التالية:
-
DataActions: لإنشاء رسائل المحادثة أو تعديلها (CreateMessageActionوUpdateMessageAction) أو إرفاق معاينات الروابط (UpdateInlinePreviewAction) باستخدامchatDataActionMarkup RenderActions: لإنشاء صفحة رئيسية أو مربّع حوار أو تعديلهما أو إغلاقهما (pushCardوupdateCardوendNavigation: "CLOSE_DIALOG")، أو لتقديم اقتراحات إدخال ديناميكية لقائمة اختيار متعدّد (modifyCard).-
AuthorizationError: يطلب من المستخدمين إدخال بطاقة تفويض أساسية (basic_authorization_prompt) لتسجيل الدخول أو إثبات ملكية حساب على خدمة خارجية.
يوضّح الجدول التالي كيف يمكن لتطبيقات Chat الردّ باستخدام الإجراءات. يمكن لتطبيقات Chat عرض عناصر JSON مباشرةً أو إنشاء الرد باستخدام AddOnResponseService وCardService في "برمجة تطبيقات Google".
| ردّ تطبيق المحادثة | الإجراء المطلوب إرجاعه (JSON) | الإجراء المطلوب لعرض القيمة (برمجة تطبيقات Google) |
|---|---|---|
| إرسال رسالة أو تعديل رسالة | DataActions (createMessageAction أو updateMessageAction) |
DataActionsResponse |
| معاينة الروابط في الرسائل التي يرسلها مستخدمو Chat في مساحة | DataActions (updateInlinePreviewAction) |
DataActionsResponse |
| عرض صفحة رئيسية أو تعديلها في علامة التبويب الصفحة الرئيسية ضمن رسالة مباشرة | RenderActions (pushCard أو updateCard) |
ActionResponse |
| فتح مربّع حوار أو تعديله أو إغلاقه | RenderActions (pushCard أو updateCard أو endNavigation: "CLOSE_DIALOG") |
ActionResponse |
| لجمع المعلومات من بطاقة أو مربّع حوار، اقترِح عناصر اختيار استنادًا إلى ما يكتبه المستخدمون في قائمة اختيار متعدّد. | RenderActions (modifyCard) |
ActionResponse |
| طلب إعداد أو منح إذن لخدمة خارجية | AuthorizationError (basic_authorization_prompt) |
AuthorizationException |
الرد برسالة
يمكن لتطبيقات الدردشة الردّ برسالة على أي من المشغّلات أو التفاعلات التالية:
- مشغّلات الرسائل، مثل عندما يشير المستخدمون إلى تطبيق Chat باستخدام @أو يرسلون رسالة مباشرة إليه
- عمليات التشغيل التي يتم تفعيلها عند إضافة التطبيق إلى مساحة، مثل عندما يثبّت المستخدمون تطبيق Chat من Google Workspace Marketplace أو يضيفونه إلى مساحة
- مشغّلات أوامر التطبيق، مثل عندما يستدعي المستخدمون أمرًا يبدأ بشرطة مائلة أو أمرًا سريعًا
- النقرات على الأزرار من البطاقات في الرسائل أو مربّعات الحوار على سبيل المثال، عندما يدخل المستخدمون معلومات وينقرون على "إرسال".
يمكن أن تتضمّن تطبيقات المحادثة أيًا مما يلي في الرسالة:
- النص الذي يحتوي على روابط تشعّبية وإشارات إلى مستخدمين وإيموجي اطّلِع على تنسيق الرسائل.
- بطاقة واحدة أو أكثر، يمكن أن تظهر في رسالة أو يتم فتحها في نافذة جديدة كحوار راجِع المقالة إنشاء بطاقات لتطبيقات Google Chat.
- تطبيقات مصغّرة واحدة أو أكثر خاصة بالملحقات، وهي عبارة عن أزرار تظهر بعد أي نص أو بطاقات في الرسالة
للردّ برسالة، أرسِل الرمز DataActions مع كائن CreateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"createMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
استبدِل MESSAGE بمورد
Message
من Chat API.
في المثال التالي، ينشئ تطبيق Chat رسالة نصية للتعريف بالخدمة ويرسلها كلما تمت إضافته إلى مساحة من خلال الرد على مشغّل تمت الإضافة إلى المساحة باستخدام DataActions:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The request object from Google Chat.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
const chatEvent = req.body.chat;
// Send an onboarding message when added to a Chat space
if (chatEvent.addedToSpacePayload) {
res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
chat_event = request.get_json()["chat"]
if "addedToSpacePayload" in chat_event:
return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
"createMessageAction": { "message": {
"text": 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}
}}})
جافا
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
JsonNode chatEvent = event.at("/chat");
if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
return new GenericJson() { {
put("hostAppDataAction", new GenericJson() { {
put("chatDataAction", new GenericJson() { {
put("createMessageAction", new GenericJson() { {
put("message", new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`."
));
} });
} });
} });
} };
}
return new GenericJson();
}
}
برمجة التطبيقات
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Google Chat.
* @return {Object} Response from the Chat app.
*/
function onAddedToSpace(event) {
return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
'To learn what else I can do, type `/help`.'
}}}}};
}
تعرض عيّنة تعليمات برمجية الرسالة النصية التالية:
تعديل رسالة
يمكن لتطبيقات المحادثة أيضًا تعديل الرسائل التي ترسلها. على سبيل المثال، يمكن لتطبيق Chat تعديل رسالة بعد أن يرسل المستخدم مربع حوار أو ينقر على زر في بطاقة ضمن رسالة.
لتعديل رسالة تطبيق Chat استجابةً لتفاعل، عليك عرض DataActions مع UpdateMessageAction:
{
"hostAppDataAction": {
"chatDataAction": {
"updateMessageAction": {
"message": <var>MESSAGE</var>
}
}
}
}
استبدِل MESSAGE بمورد
Message
من Chat API.
يمكن أيضًا لتطبيقات Chat تعديل رسالة أرسلها مستخدم لإرفاق بطاقة معاينة رابط باستخدام updateInlinePreviewAction. لمعرفة التفاصيل، يُرجى الاطّلاع على معاينة الروابط.
الردّ بشكل غير متزامن باستخدام Google Chat API
بدلاً من عرض إجراء بشكل متزامن، قد تحتاج تطبيقات Chat إلى استدعاء واجهة برمجة التطبيقات Google Chat API للردّ على تفاعل أو إرسال رسائل استباقية. على سبيل المثال، يجب أن تستخدم تطبيقات Chat واجهة برمجة تطبيقات Google Chat لتنفيذ أي مما يلي:
- الردّ على تفاعل بعد 30 ثانية (مثل بعد إكمال مهمة تستغرق وقتًا طويلاً)
- إرسال الرسائل وفقًا لجدول زمني أو إرسال إشعارات بشأن التغييرات التي تطرأ على المراجع الخارجية
- تنفيذ مهام خارج المساحة التي حدث فيها التفاعل
- تنفيذ مهام في Chat غير متاحة كإجراءات متزامنة، مثل إدراج المساحات أو إضافة أعضاء إلى مساحة
- تنفيذ مهام نيابةً عن مستخدم Chat (يتطلّب ذلك مصادقة المستخدم)
عند الردّ على تفاعل بعد 30 ثانية، لتجنُّب ظهور رسالة خطأ موجّهة للمستخدمين تفيد بأنّ تطبيق Chat لا يستجيب، يجب إرسال إقرار باستلام عنصر الحدث في غضون 30 ثانية من خلال عرض ردّ فارغ:
Node.js
async function onEvent(req, res) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return res.send({});
};
Python
def on_event(event) -> dict:
# Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return {}
جافا
public String onEvent(JsonNode event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return "{}";
}
برمجة التطبيقات
function onEvent(event) {
// Trigger asynchronous job that will respond using the Google Chat API.
...
// Respond with an empty response to the Google Chat platform.
return null;
}
لإرسال رسالة باستخدام Chat API، عليك إعداد المصادقة واستدعاء الطريقة spaces.messages.create. لمعرفة الخطوات، يُرجى الاطّلاع على مقالة إرسال رسالة. للحصول على أدلة حول استخدام طرق إضافية في Chat API، يُرجى الاطّلاع على نظرة عامة على Chat API.
المواضيع ذات الصلة
- ضبط إعدادات Google Chat API
- إرسال رسالة
- الردّ على الأوامر
- فتح مربّعات الحوار التفاعلية
- قراءة بيانات النماذج التي أدخلها المستخدمون على البطاقات
- روابط المعاينة
- إنشاء صفحة رئيسية لتطبيق Chat
- التحقّق من الطلبات الواردة من Chat
- اختبار الميزات التفاعلية لتطبيقات Google Chat
تطبيقات Chat التي ليست إضافات: تلقّي تفاعلات المستخدمين والردّ عليها
تتلقّى تطبيقات المحادثة التي ليست إضافات Google Workspace
أحداث التفاعل مع Chat API (Event)
بدلاً من
عناصر أحداث إضافات Google Workspace (EventObject)،
وتستجيب من خلال عرض المورد
Message
بدلاً من إجراء.
لترقية تطبيق Chat ليس إضافة إلى إطار عمل إضافات Google Workspace، يُرجى الاطّلاع على تحويل تطبيق Google Chat إلى إضافة Google Workspace.
أنواع أحداث التفاعل
بالنسبة إلى كل نوع من تفاعلات المستخدمين، يرسل Google Chat إلى
تطبيق Chat ليس إضافة
كائن Event يمثّل نوعه الحقل
eventType:
| تفاعل المستخدم | eventType |
ردّ نموذجي من تطبيق Chat ليس إضافة |
|---|---|---|
| يرسل مستخدم رسالة إلى تطبيق في Chat، مثلاً، يشير إلى تطبيق Chat أو يستخدم أمرًا يبدأ بشرطة مائلة. | MESSAGE |
يردّ تطبيق Chat استنادًا إلى محتوى الرسالة. على سبيل المثال، يردّ تطبيق Chat على الأمر /about الذي يبدأ بشرطة مائلة برسالة توضّح المهام التي يمكن أن ينفّذها تطبيق Chat. |
| يضيف مستخدم تطبيق Chat إلى مساحة. | ADDED_TO_SPACE |
يرسل تطبيق Chat رسالة إعداد توضّح وظيفة التطبيق وكيفية تفاعل المستخدمين في المساحة معه. |
| يزيل مستخدم تطبيق Chat من مساحة. | REMOVED_FROM_SPACE |
يزيل تطبيق Chat أي إشعارات واردة تم ضبطها للمساحة (مثل حذف خطاف ويب) ويمحو أي مساحة تخزين داخلية. |
| ينقر المستخدم على زر في بطاقة من رسالة تطبيق Chat أو مربّع حوار أو صفحة رئيسية. | CARD_CLICKED |
يعالج تطبيق Chat ويخزّن أي بيانات أرسلها المستخدم، أو يعرض بطاقة أخرى. |
| يفتح المستخدم الصفحة الرئيسية لتطبيق Chat من خلال النقر على علامة التبويب الصفحة الرئيسية في رسالة محادثة بين شخصين. | APP_HOME |
يعرض تطبيق Chat بطاقة ثابتة أو تفاعلية من الصفحة الرئيسية. |
| يرسل مستخدم نموذجًا من الصفحة الرئيسية لتطبيق Chat. | SUBMIT_FORM |
يعالج تطبيق Chat ويخزّن أي بيانات أرسلها المستخدم، أو يعرض بطاقة أخرى. |
| يُصدر المستخدم أمرًا باستخدام طلب سريع. | APP_COMMAND |
يستجيب تطبيق Chat استنادًا إلى الطلب الذي تم تنفيذه. على سبيل المثال، يردّ تطبيق Chat على الأمر حول برسالة توضّح المهام التي يمكن أن ينفّذها تطبيق Chat. |
للاطّلاع على جميع أحداث التفاعل المتوافقة وأمثلة على حمولات JSON، يُرجى الاطّلاع على
أنواع أحداث التفاعل في تطبيق Chat
وEventType مستندات المرجع.
أحداث التفاعل من مربّعات الحوار
إذا كان تطبيق Chat غير الإضافي يفتح مربّعات حوار، سيتضمّن حدث التفاعل المعلومات الإضافية التالية التي يمكنك استخدامها لمعالجة الردّ:
- تم ضبط الحقل
isDialogEventعلىtrue. - توضّح السمة
DialogEventType(REQUEST_DIALOGأوSUBMIT_DIALOGأوCANCEL_DIALOG) ما إذا كان التفاعل يؤدي إلى فتح مربّع حوار أو إرسال معلومات من مربّع حوار أو إغلاق مربّع حوار.
ضبط تطبيق Chat ليس إضافة لتلقّي أحداث التفاعل
في Google Cloud Console، انتقِل إلى صفحة الإعداد الخاصة بواجهة برمجة التطبيقات Chat API:
ضمن الميزات التفاعلية، ألغِ تحديد إنشاء تطبيق Chat هذا كإضافة في Google Workspace، ثم اضبط الوظائف ونقطة نهاية إعدادات الاتصال واحدة (عنوان URL لنقطة نهاية HTTP أو "برمجة التطبيقات" أو اسم موضوع Cloud Pub/Sub أو Dialogflow) والأوامر والطلبات الأولية ومعاينات الروابط وإذن الوصول.
انقر على حفظ.
الرد برسالة في تطبيق Chat ليس إضافة
للرد بشكل متزامن في تطبيق Chat ليس إضافة، عليك عرض الكائن Message مباشرةً. يردّ المثال التالي على حدث تفاعل ADDED_TO_SPACE برسالة نصية:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app.
*/
exports.cymbalApp = function cymbalApp(req, res) {
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
});
}
};
Python
from flask import Flask, request, json
app = Flask(__name__)
@app.route('/', methods=['POST'])
def cymbal_app():
"""Sends an onboarding message when the Chat app is added to a space.
Returns:
Mapping[str, Any]: The response object from the Chat app.
"""
event = request.get_json()
if event['type'] == 'ADDED_TO_SPACE':
return json.jsonify({
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
'learn what else I can do, type `/help`.'
})
return json.jsonify({})
جافا
@SpringBootApplication
@RestController
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
/*
* Sends an onboarding message when the Chat app is added to a space.
*
* @return The response object from the Chat app.
*/
@PostMapping("/")
@ResponseBody
public Message onEvent(@RequestBody JsonNode event) {
switch (event.get("type").asText()) {
case "ADDED_TO_SPACE":
return new Message().setText(
"Hi, Cymbal at your service. I help you manage your calendar " +
"from Google Chat. Take a look at your schedule today by typing " +
"`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
"To learn what else I can do, type `/help`.");
default:
return new Message();
}
}
}
برمجة التطبيقات
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
'from Google Chat. Take a look at your schedule today by typing ' +
'`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn ' +
'what else I can do, type `/help`.'
};
}