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

يمكن للمستخدمين إرسال أي نص أو مواقع جغرافية أو ملفات يسمح بها تطبيق RCS. يجب أن يتعامل وكيلك مع أي نصوص أو مواقع جغرافية أو ملفات قد يرسلها المستخدم، بالإضافة إلى أي حالات خطأ قد تؤدي إليها هذه الرسائل.
التعامل مع الرسائل الواردة
تعتمد طريقة تعامل الوكيل مع الرسائل الواردة من المستخدمين والرد عليها بشكل كبير على منطق نشاطك التجاري. ومع ذلك، تكون خطوات الردّ على رسالة المستخدم متّسقة بشكل عام.
الخطوة 1: تحديد نوع الرسالة التي أرسلها المستخدم
يمكن للمستخدمين إرسال أربعة أنواع من الرسائل:
- الرسائل النصية هي ردود حرة.
- تتضمّن رسائل الاقتراحات بيانات الردّ و نص الإجراء المقترَح أو الردّ المقترَح الذي نقر عليه المستخدم.
تتضمّن رسائل الموقع الجغرافي قيم خطوط الطول والعرض.
تتضمّن رسائل الملف معرّف الموارد المنتظم (URI) لملف والبيانات المرتبطة به.
الخطوة 2: معالجة محتوى الرسالة
يجب أن يوجّه محتوى رسالة المستخدم منطق الوكيل وردّه التالي في المحادثة.
أسهل طريقة لتحديد نية المستخدم هي من خلال بيانات الردّ التلقائي من ردّ مقترَح أو إجراء مقترَح. وبغض النظر عن النص المرتبط بالاقتراح، تكون بيانات الردّ قابلة للقراءة آليًا.
إذا أرسل المستخدم رسالة نصية، قد يحلّل الوكيل الرد بحثًا عن كلمات رئيسية متوافقة أو يستخدم معالجة اللغة الطبيعية (مثل Dialogflow) لمعالجة رسالة المستخدم وتحديد مسار للمتابعة.
لا تتضمّن رسائل الموقع الجغرافي والملفات بيانات نصية أو بيانات ردّ، لذا على وكيلك مراعاة سياق المحادثة والرسائل الحديثة قبل الردّ.
إذا لم يعرف المساعد كيفية الرد على رسالة المستخدم، عليه الرد بحالة خطأ ومحاولة مواصلة المحادثة من خلال مطالبة المستخدم بتقديم معلومات إضافية أو طلب إدخال البيانات بطريقة مختلفة أو عرض ردود مقترَحة وإجراءات مقترَحة يعرف المساعد كيفية الرد عليها.
الخطوة 3: تنفيذ منطق النشاط التجاري للتفاعل
بعد أن يحدّد الوكيل الردّ الصحيح على رسالة المستخدم، يجمع المعلومات اللازمة من البنية الأساسية ويتفاعل مع الأنظمة الأخرى حسب الحاجة لتنفيذ منطق النشاط التجاري للتفاعل.
الخطوة 4: الردّ على المستخدم
بعد أن ينفّذ الوكيل منطق النشاط التجاري للتفاعل، يرسل رسالة أخرى ويواصل المحادثة مع المستخدم.
أمثلة
يوضّح الرمز التالي كيفية تلقّي برنامجك للرسائل. للحصول على معلومات حول التنسيق والقيمة، يُرجى الاطّلاع على UserMessage.
ملاحظة: بالنسبة إلى الزيارات الواردة من الولايات المتحدة، تخضع رسائل المستخدمين والنقرات على الإجراءات المقترَحة لتصنيفات نموذج الفوترة في الولايات المتحدة. عندما يتلقّى وكيلك هذه الأحداث، سيضمّن الحقل richMessageClassification الذي يحدّد نوع الحدث القابل للفوترة. راجِع دليل نموذج الفوترة في الولايات المتحدة
للاطّلاع على تفاصيل التصنيف.
يتلقّى الوكيل رسالة نصية
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"text": "Hello, world!"
}يتلقّى الوكيل رسالة من اقتراح
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"suggestionResponse": {
"postbackData": "suggestion_1",
"text": "Suggestion #1"
}
}تلقّي الوكيل موقعًا جغرافيًا
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"location": {
"latitude": 37.422000,
"longitude": -122.084056
}
}يتلقّى الوكيل ملفًا
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
التعامل مع الأحداث الواردة
يتلقّى وكيلك إشعارات عندما يتم تسليم الرسائل التي يرسلها إلى المستخدمين وقراءتها.
يوضّح الرمز التالي كيفية تلقّي برنامجك للرسائل. للحصول على معلومات حول التنسيق والقيمة، يُرجى الاطّلاع على UserEvent.
تم تسليم الرسالة إلى المستخدم
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "DELIVERED"
}تمت قراءة الرسالة من قِبل المستخدم
{
"agentId": "AGENT_ID",
"senderPhoneNumber": "PHONE_NUMBER",
"messageId": "MESSAGE_ID",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"eventType": "READ"
}يكتب المستخدم
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "IS_TYPING",
"eventId": "EVENT_ID",
"sendTime": "2018-12-31T15:01:23.045123456Z",
"agentId": "AGENT_ID"
}