يتواصل وكلاء RBM مع المستخدمين من خلال إرسال الرسائل واستلامها. لإرسال الرسائل إلى المستخدمين، يرسل موظّف الدعم طلبات الرسائل إلى واجهة برمجة التطبيقات RCS Business Messaging API. يمكن أن يتضمّن طلب واحد نصًا أو بطاقة غنية أو صورة أو فيديو بالإضافة إلى الردود المقترَحة والإجراءات المقترَحة.
إذا أرسلت رسالة إلى مستخدم لا يتيح جهازه ميزة RCS أو لم يتم تفعيل ميزة RCS عليه، ستظهر رسالة الخطأ 404 على منصة RBM. في هذه الحالة، يمكنك محاولة التواصل مع المستخدم من خلال طُرق النسخ الاحتياطي المحدّدة في بنيتك الأساسية.
إذا أرسلت رسالة إلى مستخدم RCS على شبكة لم يتم إطلاق وكيلك عليها بعد، أو على شبكة لم تفعِّل حركة RCS، ستُظهر منصة RBM خطأ 403.
إذا أرسلت رسالة تتضمّن ميزات لا يتوافق معها جهاز المستخدم، تعرِض منصّة RBM رسالة خطأ ولا تسليم رسالتك.
كجزء من استراتيجية المراسلة عبر القنوات المتعددة، من الأفضل إبطال الرسائل التي لم يتم تسليمها بعد مرور وقت معقول وإرسالها من خلال قناة مختلفة. لإلغاء الرسائل تلقائيًا في وقت محدّد مسبقًا، يمكنك ضبط فترة انتهاء صلاحية الرسالة.
المتلقّي غير متّصل بالإنترنت
لا تزال منصة RBM تقبل رسالة لإرسالها إذا كان المستلِم غير متصل بالإنترنت. تتلقّى استجابة 200 OK، وتحتفظ منصة RBM بالرسالة ويُجرى محاولة إعادة تسليمها لمدة 30 يومًا. ليس عليك الطلب من فريق RBM إرسال الرسالة مجددًا.
تحذف ميزة "إدارة الرسائل التلقائية" أي رسائل لم يتم تسليمها بعد 30 يومًا من إرسالها.
استنادًا إلى حالة استخدام موظّف الدعم، قد تحتاج إلى إبطال رسالة لم يتم تسليمها قبل انتهاء مهلة الـ 30 يومًا هذه. يمكن أن يمنع الإبطال المستخدمين الذين لا يملكون اتصالاً بالإنترنت منتلقّي رسالة قديمة عند عودتهم إلى الإنترنت. هناك عدة طرق لإلغاء إرسال رسالة:
- أرسِل طلبًا لإبطال الاشتراك لبدء عملية الإبطال.
- ضبط تاريخ انتهاء صلاحية الرسالة لإلغاء الرسالة تلقائيًا في الوقت المناسب
ضبط تاريخ انتهاء صلاحية الرسالة
هل رسالة موظّف الدعم حسّاسة للوقت؟ على سبيل المثال، تكون الرموز المتغيّرة صالحة فقط لفترة محدودة. تنتهي صلاحية العروض المتاحة لفترة محدودة. ولا تكون تذكيرات المواعيد مفيدة بعد تاريخ الموعد. للمساعدة في ضمان إرسال رسائل مفيدة في الوقت المناسب، يمكنك ضبط تاريخ انتهاء صلاحيتها. ويمكن أن يمنع ذلك المستخدمين بلا إنترنت من تلقّي محتوى قديم عند عودتهم إلى الإنترنت. يُعدّ تاريخ انتهاء الصلاحية أيضًا إشارة جيدة لتطبيق استراتيجية الرسائل الاحتياطية كي يحصل المستخدمون على المعلومات التي يحتاجون إليها في الوقت المناسب.
لضبط تاريخ انتهاء صلاحية الرسالة، حدِّد أحد الحقول التالية في رسالة موظّف الدعم:
-
expireTime
: الوقت الدقيق بالتوقيت العالمي المنسق لانتهاء صلاحية الرسالة ttl
(مدة البقاء): المدة التي تنتهي بعدها صلاحية الرسالة.
لمعرفة خيارات التنسيق والقيمة، راجِع AgentMessage
.
بعد انتهاء صلاحية الرسالة، تتوقف منصة RBM عن محاولة تسليمها، ويُلغى صلاحيتها تلقائيًا. ومع ذلك، قد يتعذّر ذلك في حالات نادرة. على سبيل المثال، يمكن أن تؤدي واجهة برمجة التطبيقات إلى إلغاء الإذن أثناء عملية إرسال الرسالة من منصة RBM. للتأكّد مما إذا تم إبطال الرسالة المنتهية الصلاحية بنجاح أم لا، ستُرسِل ميزة "إدارة الموافقة" إشعارًا بشأن الحدث إلى رابط الويب الخاص بخدمة Firebase.
الحد الأقصى لقيمة ttl
وexpireTime
هو 15 يومًا بعد إرسال الرسالة.
الحدود القصوى لحجم الرسائل
الحد الأقصى لحجم AgentMessage الكاملة التي تم تحويلها إلى سلسلة هو 250 كيلوبايت. تساهم البطاقات التفاعلية والوسائط الأخرى في الحد الأقصى هذا للحجم. يجب ألا يزيد عدد أحرف الجزء النصي من الرسالة عن 3072 حرفًا.
الحد الأقصى لحجم الملف الذي يمكن إرساله من خلال ميزة "الاستجابة السريعة للإعلانات" هو 100 ميغابايت. يمكن إرفاق ملف PDF أو ملف وسائط واحد فقط في رسالة RBM واحدة. يُرجى الرجوع إلى الوسائط وملفات PDF للحصول على مزيد من المعلومات.
نص
أبسط الرسائل تتكوّن من نص. إنّ الرسائل النصية هي الأنسب ل إرسال المعلومات بدون الحاجة إلى العناصر المرئية أو التفاعل المعقد أو الردّ.
مثال
يُرسِل الرمز التالي رسالة نصية عادية. للاطّلاع على خيارات التنسيق والقيمة، يُرجى الاطّلاع على phones.agentMessages.create
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!' } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let params = { messageText: 'Hello, world!', msisdn: '+12223334444', }; // Send a simple message to the device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send simple text message to user rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444" ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a simple RBM text message message_text = messages.TextMessage('Hello, world!') # Send text message to the device messages.MessageCluster().append_message(message_text).send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
#C
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
محتوى الرسالة الأساسي: تحويل الرسائل القصيرة
طرح مشغّلو شبكات الجوّال نماذج فوترة للسماح بنقل الرسائل القصيرة إلى ميزة "مراسلة الأنشطة التجارية من خلال خدمات الاتصالات التفاعلية (RCS)". تُعرف رسالة RBM التي تحتوي على ما يصل إلى 160 حرفًا بترميز UTF-8 باسم "رسالة أساسية".
عند إنشاء طلب لإرسال رسالة أساسية، تذكَّر أنّ الأحرف تُحتسب على أنّها بايت واحد (UTF-8). إذا أرسلت رسالة تحتوي على أحرف خاصة، مثل الرموز التعبيرية أو مجموعة أحرف متعددة البايت، يتم احتساب كل حرف كحرفَي UTF-8.
أدخِل بعض النصوص في المربّع للتحقّق من طولها:
كلمات المرور التي تُستخدَم لمرة واحدة لإثبات هوية المستخدم
يمكنك استخدام ميزة "إدارة الطلبات" لإرسال كلمات مرور صالحة لمرة واحدة (OTP) للتأكّد تلقائيًا من هوية العميل باستخدام واجهة برمجة التطبيقات SMS Retriever API. لمزيد من المعلومات عن SMS Retriever وواجهات برمجة التطبيقات ذات الصلة، يُرجى الاطّلاع على مستندات SMS Retriever. لمعرفة تفاصيل عن عملية إثبات هوية المستخدم تلقائيًا في التطبيقات التي تم تسجيلها باستخدام واجهة برمجة التطبيقات SMS Retriever API، يُرجى الاطّلاع على مخطّط التدفق هذا.
أثناء عملية التحقّق، تنتظر واجهة برمجة التطبيقات SMS Retriever API رسالة إعادة توجيه البريد الإلكتروني (RBM). يجب أن تحتوي هذه الرسالة على مفتاح مرور صالح لمدة ساعة وقيمة تجزئة تحدّد التطبيق. بعد مطابقة القيمة التجزئة مع التطبيق، يتم استخراج مفتاح المرور الصالح لمدة ساعة وإعادة توجيهه إلى التطبيق للتحقّق من المستخدم تلقائيًا.
في ما يلي نموذج رسالة نصية من RBM لإثبات هوية المستخدم: رمزك هو <OTP> <hash app>.
على سبيل المثال، Your code is 123456 M8tue43FGT.
ملفات الوسائط وملفات PDF
عند إرسال رسالة تتضمّن صورة أو فيديو أو ملف صوتي أو ملف PDF، على موظّف الدعم تقديم عنوان URL متاح للجميع للمحتوى أو تحميل الملف مباشرةً. بالنسبة إلى ملفات الوسائط، يمكنك أيضًا تحديد صورة مصغّرة تتيح للمستخدمين التمكّن من معاينة المحتوى قبل النقر عليه. بالنسبة إلى الملفات الصوتية، يتم استخدام ملف ملف الصوت التلقائي كعنصر نائب.
تخزِّن منصة RBM الملفات مؤقتًا لمدة 60 يومًا، وتُعرِض واجهة برمجة التطبيقات رقم تعريف ملف يمكن لوكيل الدعم تضمينه في الرسائل المُرسَلة إلى المستخدمين. بعد 60 يومًا، تزيل ميزة "إدارة المساحة في السحابة الإلكترونية" الملفات من ذاكرة التخزين المؤقت.
عند تحديد الملفات حسب عنوان URL، من أفضل الممارسات ضبط
contentMessage.forceRefresh
على false
. يؤدي ضبط القيمة contentMessage.forceRefresh
على true
إلى إجبار ميزة "الاستجابة السريعة للرسائل" على جلب محتوى جديد من عنوان URL المحدّد، حتى إذا كان
محتوى عنوان URL محفوظًا في ذاكرة التخزين المؤقت، ما يؤدّي إلى زيادة أوقات تسليم الرسائل للمستخدمين.
اطّلِع على أفضل الممارسات لمعرفة الاقتراحات والحدود المتعلقة بحجم الملفات.
مثال على عنوان URL للملف
تُرسِل التعليمة البرمجية التالية صورة. لمعرفة خيارات التنسيق والقيمة، راجِع
AgentContentMessage
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'contentInfo': { 'fileUrl': 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', 'forceRefresh': 'false' } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let params = { fileUrl: 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', msisdn: '+12223334444', }; // Send an image/video to a device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.AgentContentMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.AgentMessage; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); String fileUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // create media only message AgentContentMessage agentContentMessage = new AgentContentMessage(); agentContentMessage.setContentInfo(new ContentInfo().setFileUrl(fileUrl)); // attach content to message AgentMessage agentMessage = new AgentMessage(); agentMessage.setContentMessage(agentContentMessage); rbmApiHelper.sendAgentMessage(agentMessage, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create media file attachment file_message = messages.FileMessage('http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif') messages.MessageCluster().append_message(file_message).send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); string fileUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create content info with the file url ContentInfo contentInfo = new ContentInfo { FileUrl = fileUrl }; // Attach content info to a message AgentContentMessage agentContentMessage = new AgentContentMessage { ContentInfo = contentInfo, }; // Attach content to message AgentMessage agentMessage = new AgentMessage { ContentMessage = agentContentMessage }; rbmApiHelper.SendAgentMessage(agentMessage, "+12223334444");هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
بدلاً من ذلك، يمكنك تحميل الوسائط قبل إرسالها في رسالة باستخدام رمز
files.create
.
مثال على تحميل ملف
تحمِّل الرموز البرمجية التالية ملف فيديو وملف صورة مصغّرة، ثم تُرسِل كلا الملفين في رسالة. لمعرفة خيارات التنسيق والقيمة، اطّلِع على files.create
وAgentContentMessage
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/upload/v1/files?agentId=AGENT_ID" \ -H "Content-Type: video/mp4" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ --upload-file "FULL_PATH_TO_VIDEO_MEDIA_FILE"
# Capture server-specified video file name from response body JSON
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/upload/v1/files?agentId=AGENT_ID" \ -H "Content-Type: image/jpeg" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ --upload-file "FULL_PATH_TO_THUMBNAIL_MEDIA_FILE"
# Capture server-specified image file name from response body JSON
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'uploadedRbmFile': { 'fileName': 'SERVER-SPECIFIED_VIDEO_FILE_NAME' 'thumbnailName': 'SERVER-SPECIFIED_THUMBNAIL_FILE_NAME' } } }"
أنواع الوسائط المتوافقة
تتيح ميزة "الاستهداف بالاستناد إلى الجمهور المستهدَف" أنواع الوسائط التالية:
نوع الوسائط | نوع المستند | الإضافة | التوافق مع البطاقات التفاعلية |
---|---|---|---|
application/ogg | ملف صوتي بتنسيق OGG | .ogx | لا |
application/pdf | لا | ||
audio/aac | صوت بترميز AAC | .aac | لا |
audio/mp3 | ملف صوتي بتنسيق MP3 | .mp3 | لا |
audio/mpeg | صوت MPEG | .mpeg | لا |
audio/mpg | MPG audio | .mp3 | لا |
audio/mp4 | صوت MP4 | .mp4 | لا |
audio/mp4-latm | صوت MP4-latm | .mp4 | لا |
audio/3gpp | ملف صوتي بتنسيق 3GPP | .3gp | لا |
image/jpeg | JPEG | .jpeg و.jpg | نعم |
الصورة/gif | GIF | .gif | نعم |
الصورة/png | PNG | .png | نعم |
video/h263 | فيديو H263 | .h263 | نعم |
video/m4v | فيديو M4V | .m4v | نعم |
الفيديو/mp4 | فيديو بتنسيق MP4 | .mp4 | نعم |
video/mpeg4 | فيديو بتنسيق MPEG-4 | .mp4 و.m4p | نعم |
video/mpeg | فيديو MPEG | .mpeg | نعم |
video/webm | فيديو WEBM | .webm | نعم |
الردود المقترَحة
ترشِد الردود المقترَحة المستخدمين خلال المحادثات من خلال تقديم ردود يعرف موظّف الدعم كيفية الردّ عليها. يرسل موظّف الدعم الردود المقترَحة في قوائم شرائح الاقتراحات أو في بطاقات البحث الذكية.
عندما ينقر أحد المستخدمين على ردّ مقترَح، يتلقّى موظّف الدعم حدثًا يحتوي على نص الردّ وبيانات تسجيل الإحالات الناجحة.
يجب ألا يزيد عدد الأحرف في الردود المقترَحة عن 25 حرفًا.
مثال
يُرسِل الرمز التالي نصًا يتضمّن ردّين مقترَحين. للحصول على خيارات التنسيق والقيمة، يُرجى الاطّلاع على SuggestedReply
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'reply': { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1' } }, { 'reply': { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2' } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); let suggestions = [ { reply: { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1', }, }, { reply: { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2', }, }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with suggestion chips to the device rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); suggestions.add( new SuggestionHelper("Suggestion #1", "suggestion_1").getSuggestedReply()); suggestions.add( new SuggestionHelper("Suggestion #2", "suggestion_2").getSuggestedReply()); // Send simple text message to user rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggested replies for the message to send to the user cluster.append_suggestion_chip(messages.SuggestedReply('Suggestion #1', 'reply:suggestion_1')) cluster.append_suggestion_chip(messages.SuggestedReply('Suggestion #2', 'reply:suggestion_2')) # Send a simple message with suggestion chips to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); List<Suggestion> suggestions = new List<Suggestion> { // Create suggestion chips new SuggestionHelper("Suggestion #1", "suggestion_1").SuggestedReply(), new SuggestionHelper("Suggestion #2", "suggestion_2").SuggestedReply() }; // Send simple text message with suggestions to user rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
إجراءات مقترحة
ترشد الإجراءات المقترَحة المستخدمين خلال المحادثات من خلال الاستفادة من وظائف الأجهزة المضمّنة. يمكن أن يقترح موظّف الدعم على المستخدمين الاتصال برقم، أو فتح موقع جغرافي على خريطة، أو مشاركة موقع جغرافي، أو فتح عنوان URL، أو إنشاء حدث تقويمي. يرسل موظّف الدعم الإجراءات المقترَحة في قوائم شرائح الاقتراحات أو في بطاقات البحث الذكية.
عندما ينقر أحد المستخدِمين على إجراء مقترَح، يتلقّى موظّف الدّعم حدثًا يحتوي على بيانات تسجيل الإحالات الناجحة للإجراء.
يجب أن تتألف الإجراءات المقترَحة من 25 حرفًا كحدّ أقصى.
لمعرفة خيارات التنسيق والقيمة، راجِع
SuggestedAction
.
طلب رقم
يوجّه الإجراء Dial المستخدم إلى طلب رقم هاتف يحدّده موظّف الدعم.
يمكن أن تتضمّن أرقام الهواتف الأرقام (0-9
) وعلامة الإضافة (+) والنجمة (*
)
وعلامة الرقم (#
) فقط. يُسمح باستخدام التنسيق الدولي E.164 (مثل
+14155555555
)، ولكن ليس مطلوبًا.+
وهذا يعني أنّ كلاً من +14155555555
و
1011
إدخالان صالحان.
مثال
تُرسِل التعليمة البرمجية التالية إجراء الاتصال. لمعرفة خيارات التنسيق والقيمة، راجِع
DialAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Call', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/contact/', 'dialAction': { 'phoneNumber': '+15556667777' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a dial suggested action let suggestions = [ { action: { text: 'Call', postbackData: 'postback_data_1234', dialAction: { phoneNumber: '+15556667777' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a dial suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.DialAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a dial suggested action DialAction dialAction = new DialAction(); dialAction.setPhoneNumber("+15556667777"); // creating a suggested action based on a dial action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Call"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setDialAction(dialAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a dial suggested action suggestions = [ messages.DialAction('Call', 'reply:postback_data_1234', '+15556667777') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a dial an agent suggested action DialAction dialAction = new DialAction { PhoneNumber = "+15556667777" }; // Creating a suggested action based on a dial action SuggestedAction suggestedAction = new SuggestedAction { Text = "Call", PostbackData = "postback_data_1234", DialAction = dialAction }; // Attach action to a suggestion Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
عرض موقع جغرافي
يعرض الإجراء "عرض الموقع الجغرافي" موقعًا جغرافيًا في تطبيق الخرائط التلقائي للمستخدم. يمكنك تحديد الموقع الجغرافي إما حسب خط العرض وخط الطول أو باستخدام طلب بحث يستند إلى الموقع الجغرافي الحالي للمستخدم. يمكنك أيضًا ضبط تصنيف مخصّص للدبوس الذي يظهر في تطبيق الخريطة.
مثال
تُرسِل التعليمة البرمجية التالية إجراء عرض الموقع الجغرافي. للاطّلاع على خيارات التنسيق والقيمة، يُرجى الاطّلاع على ViewLocationAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'View map', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/maps/@37.4220188,-122.0844786,15z', 'viewLocationAction': { 'latLong': { 'latitude': "37.4220188', 'longitude': "-122.0844786' }, 'label': 'Googleplex' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a view location suggested action let suggestions = [ { action: { text: 'View map', postbackData: 'postback_data_1234', viewLocationAction: { latLong: { latitude: 37.4220188, longitude: -122.0844786 }, label: 'Googleplex' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a view location suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ViewLocationAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a view location suggested action ViewLocationAction viewLocationAction = new ViewLocationAction(); viewLocationAction.setQuery("Googleplex, Mountain View, CA"); // creating a suggested action based on a view location action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("View map"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setViewLocationAction(viewLocationAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a view location suggested action suggestions = [ messages.ViewLocationAction('View map', 'reply:postback_data_1234', query='Googleplex, Mountain View, CA') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // create an view location action ViewLocationAction viewLocationAction = new ViewLocationAction { Query = "Googleplex Mountain View, CA" }; // Attach the view location action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { ViewLocationAction = viewLocationAction, Text = "View map", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
مشاركة موقع
يتيح إجراء "مشاركة الموقع الجغرافي" للمستخدم إرسال موقع جغرافي إلى موظّف الدعم. لا يشير الموقع الجغرافي الذي يحدّده المستخدم بالضرورة إلى موقعه الجغرافي.
مثال
تُرسِل التعليمة البرمجية التالية إجراء مشاركة الموقع الجغرافي. للاطّلاع على خيارات التنسيق والقيمة، يُرجى الاطّلاع على ShareLocationAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Share your location', 'postbackData': 'postback_data_1234', 'shareLocationAction': {} } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a share location suggested action let suggestions = [ { action: { text: 'Share your location', postbackData: 'postback_data_1234', shareLocationAction: { } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a share location suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ShareLocationAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a share location suggested action ShareLocationAction shareLocationAction = new ShareLocationAction(); // creating a suggested action based on a share location action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Share location"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setShareLocationAction(shareLocationAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a share location suggested action suggestions = [ messages.ShareLocationAction('Share location', 'reply:postback_data_1234') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a share location action ShareLocationAction shareLocationAction = new ShareLocationAction(); // Attach the share location action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { ShareLocationAction = shareLocationAction, Text = "Share location", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
فتح عنوان URL
يتيح لك إجراء OpenURL توجيه المستخدمين إلى صفحة ويب يحدّدها موظّف الدعم. يتم فتح صفحة الويب تلقائيًا في متصفّح المستخدم. إذا كان لدى المستخدم تطبيق تلقائي تم إعداده لصفحة الويب، سيتم فتح هذا التطبيق بدلاً من ذلك. في هذه الحالة، سيكون الرمز على زر الإجراء المقترَح هو رمز التطبيق.
يتيح إجراء OpenURL أيضًا استخدام WebViews المدمجة. راجِع فتح عنوان URL باستخدام WebView.
مثال
تُرسِل التعليمة البرمجية التالية إجراء فتح عنوان URL. للحصول على خيارات التنسيق والقيمة،
راجِع
OpenUrlAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Open Google', 'postbackData': 'postback_data_1234', 'openUrlAction': { 'url': 'https://www.google.com' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define an open URL suggested action let suggestions = [ { action: { text: 'Open Google', postbackData: 'postback_data_1234', openUrlAction: { url: 'https://www.google.com' } } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with an open URL suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.OpenUrlAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating an open url suggested action OpenUrlAction openUrlAction = new OpenUrlAction(); openUrlAction.setUrl("https://www.google.com"); // creating a suggested action based on an open url action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Open Google"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setOpenUrlAction(openUrlAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create an open url suggested action suggestions = [ messages.OpenUrlAction('Open Google', 'reply:postback_data_1234', 'https://www.google.com') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create an open url action OpenUrlAction openUrlAction = new OpenUrlAction { Url = "https://www.google.com" }; // Attach the open url action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { OpenUrlAction = openUrlAction, Text = "Open Google", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
فتح عنوان URL باستخدام webview
يُحمِّل إجراء "فتح عنوان URL باستخدام webview" صفحة الويب المحدّدة
داخل تطبيق المراسلة باستخدام محرّك العرض في المتصفّح التلقائي. يتيح ذلك
للمستخدم التفاعل مع صفحة الويب بدون مغادرة
محادثة RBM. لتفعيل عروض الويب، يُرجى الاطّلاع على OpenURLApplication
.
تتضمّن عروض الويب ثلاثة أوضاع عرض. لمعرفة خيارات التنسيق والقيمة، راجِع
WebviewViewMode
.
- ملء الشاشة: تشغل صفحة الويب الشاشة بالكامل.
- نصف الشاشة: تشغل صفحة الويب نصف الشاشة.
- عمودي: تشغل صفحة الويب ثلاثة أرباع الشاشة.
مثال
يُرسِل الرمز البرمجي التالي عنوان URL مفتوحًا باستخدام إجراء webview. لمعرفة خيارات التنسيق والقيمة، يُرجى الاطّلاع على OpenURLAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d '{ "contentMessage": { "text": "Hello, world!", "suggestions": [ { "action": { "text": "Open Google", "postbackData": "postback_data_1234", "openUrlAction": { "url": "https://www.google.com", "application": "WEBVIEW", "webviewViewMode": "FULL", "description": "Accessibility description" } } } ] } }'
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.OpenUrlAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { String URL = "https://www.google.com"; // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // Create suggestion to view webpage in full mode Suggestion viewInFullMode = getUrlActionInWebview(URL, "FULL") suggestions.add(viewInFullMode); // create suggestion to view webpage in half mode Suggestion viewInHalfMode = getUrlActionInWebview(URL, "HALF") suggestions.add(viewInHalfMode); // create suggestion to view webpage in tall mode Suggestion viewInTallMode = getUrlActionInWebview(URL, "TALL") suggestions.add(viewInTallMode); // Send simple text message with the suggested action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); } /** * Creates a suggested action to open URL in webview. * * @return a suggestion object for an open URL in webview action . */ private Suggestion getUrlActionInWebview(String url, String viewMode) { // create an open url action OpenUrlAction openUrlAction = new OpenUrlAction(); openUrlAction.setUrl(url); openUrlAction.setApplication("WEBVIEW"); openUrlAction.setWebviewViewMode(viewMode); openUrlAction.setDescription("Accessibility description"); // attach the open url action to a suggested action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setOpenUrlAction(openUrlAction); suggestedAction.setText('display_text'); suggestedAction.setPostbackData('postback_data_123'); // attach the action to a suggestion object Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; }
إنشاء حدث في التقويم
يؤدي الإجراء "إنشاء حدث في التقويم" إلى فتح تطبيق تقويم المستخدم والبدء في إنشاء حدث جديد باستخدام المعلومات المحدّدة.
مثال
تُرسِل التعليمة البرمجية التالية إجراءً لإنشاء حدث في التقويم. للحصول على خيارات التنسيق والقيمة، يُرجى الاطّلاع على CreateCalendarEventAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Save to calendar', 'postbackData': 'postback_data_1234', 'fallbackUrl': 'https://www.google.com/calendar', 'createCalendarEventAction': { 'startTime': '2020-06-30T19:00:00Z', 'endTime': '2020-06-30T20:00:00Z', 'title': 'My calendar event', 'description': 'Description of the calendar event' } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a create calendar event suggested action let suggestions = [ { action: { text: 'Save to calendar', postbackData: 'postback_data_1234', createCalendarEventAction: { startTime: '2020-06-30T19:00:00Z', endTime: '2020-06-30T20:00:00Z', title: 'My calendar event', description: 'Description of the calendar event', }, } }, ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a create calendar event suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.CreateCalendarEventAction; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating a create calendar event suggested action CreateCalendarEventAction createCalendarEventAction = new CreateCalendarEventAction(); calendarEventAction.setTitle("My calendar event"); calendarEventAction.setDescription("Description of the calendar event"); calendarEventAction.setStartTime("2020-06-30T19:00:00Z"); calendarEventAction.setEndTime("2020-06-30T20:00:00Z"); // creating a suggested action based on a create calendar event action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Save to calendar"); suggestedAction.setPostbackData("postback_data_1234"); suggestedAction.setCreateCalendarEventAction(createCalendarEventAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); suggestions.add(suggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a calendar event suggested action suggestions = [ messages.CreateCalendarEventAction('Save to Calendar', 'reply:postback_data_1234', '2020-06-30T19:00:00Z', '2020-06-30T20:00:00Z', 'My calendar event', 'Description of the calendar event') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a calendar event action CreateCalendarEventAction calendarEventAction = new CreateCalendarEventAction { Title = "My calendar event", Description = "Description of the calendar event", StartTime = "2020-06-30T19:00:00Z", EndTime = "2020-06-30T20:00:00Z" }; // Attach the calendar event action to a suggested action SuggestedAction suggestedAction = new SuggestedAction { CreateCalendarEventAction = calendarEventAction, Text = "Save to calendar", PostbackData = "postback_data_1234" }; // Attach the action to a suggestion object Suggestion suggestion = new Suggestion { Action = suggestedAction }; List<Suggestion> suggestions = new List<Suggestion> { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
إنشاء رسائل
يؤدي الإجراء "إنشاء" إلى فتح تطبيق المراسلة لدى المستخدم حتى يتمكّن من إرسال رسائل إلى رقم هاتف محدّد مسبقًا، مثل رقم خدمة دعم العملاء.
هناك ثلاثة أنواع من إجراءات الإنشاء. للاطّلاع على أمثلة مرئية، يُرجى الاطّلاع على مقالة إنشاء رسالة نصية أو صوتية أو رسالة فيديو.
- إنشاء رسالة نصية: يؤدي هذا الإجراء إلى فتح تطبيق المراسلة مع نص مملوء مسبقًا ليتم إرساله من قِبل المستخدم.
- إنشاء رسالة صوتية: يؤدي هذا الإجراء إلى فتح تطبيق المراسلة وتشغيل الميكروفون حتى يتمكّن المستخدم من تسجيل الصوت.
- إنشاء رسالة فيديو: يؤدي هذا الإجراء إلى فتح تطبيق المراسلة وتشغيل الكاميرا حتى يتمكّن المستخدم من تسجيل فيديو.
مثال
تُرسِل التعليمة البرمجية التالية إجراء كتابة. لمعرفة خيارات التنسيق والقيمة، راجِع
ComposeAction
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'text': 'Hello, world!', 'suggestions': [ { 'action': { 'text': 'Compose a text message', 'postbackData': 'postback_data_123', 'composeAction': { 'composeTextMessage': { 'phoneNumber': '+15556667777' 'text': 'Draft to go into the send message text field.' } } } },{ 'action': { 'text': 'Compose an audio message', 'postbackData': 'postback_data_456', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_AUDIO' } } } },{ 'action': { 'text': 'Compose a video message', 'postbackData': 'postback_data_789', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_VIDEO' } } } } ] } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Define a compose suggested action let suggestions = [ { action: { text: 'Compose a text message', postbackData: 'postback_data_123', 'composeAction': { 'composeTextMessage': { 'phoneNumber': '+15556667777' 'text': 'Draft to go into the send message text field.' } } } },{ action: { text: 'Compose an audio message', postbackData: 'postback_data_456', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_AUDIO' } } } },{ action: { text: 'Compose a video message', postbackData: 'postback_data_789', 'composeAction': { 'composeRecordingMessage': { 'phoneNumber': '+15556667777' 'type': 'ACTION_TYPE_VIDEO' } } } } ]; let params = { messageText: 'Hello, world!', msisdn: '+12223334444', suggestions: suggestions, }; // Send a simple message with a dial suggested action rbmApiHelper.sendMessage(params, function(response) { console.log(response); });
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeAction; import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeRecordingMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.ComposeTextMessage; import com.google.api.services.rcsbusinessmessaging.v1.model.SuggestedAction; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.RbmApiHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); // creating compose text suggested action Suggestion composeTextSuggestion = getComposeTextAction() suggestions.add(composeTextSuggestion); // creating compose audio suggested action Suggestion composeAudioSuggestion = getComposeAudioAction() suggestions.add(composeAudioSuggestion); // Send simple text message with the suggestion action rbmApiHelper.sendTextMessage( "Hello, world!", "+12223334444", suggestions ); } catch(Exception e) { e.printStackTrace(); } /** * Creates a compose text suggested action. * @return A suggestion object for a compose text action. */ private Suggestion getComposeTextAction() { // creating a compose text suggested action ComposeTextMessage message = new ComposeTextMessage(); message.setPhoneNumber("+12223334444"); message.setText("Draft to go into the send message text field."); ComposeAction composeAction = new ComposeAction(); composeAction.setComposeTextMessage(message); // creating a suggested action based on a compose text action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Send a text message"); suggestedAction.setPostbackData("postback_data_123"); suggestedAction.setComposeAction(composeAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; } /** * Creates a compose audio suggested action. * @return A suggestion object for a compose audio action. */ private Suggestion getComposeAudioAction() { // creating a compose audio suggested action ComposeRecordingMessage message = new ComposeRecordingMessage(); message.setPhoneNumber("+12223334444"); message.setType("ACTION_TYPE_AUDIO"); ComposeAction composeAction = new ComposeAction(); composeAction.setComposeRecordingMessage(message); // creating a suggested action based on a compose text action SuggestedAction suggestedAction = new SuggestedAction(); suggestedAction.setText("Send an audio message"); suggestedAction.setPostbackData("postback_data_456"); suggestedAction.setComposeAction(composeAction); // attaching action to a suggestion Suggestion suggestion = new Suggestion(); suggestion.setAction(suggestedAction); return suggestion; }
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Create a dial suggested action suggestions = [ messages.ComposeTextMessageAction( 'Send a text message', 'postback_data_123', '+15556667777', '') messages.ComposeRecordingMessageAction( 'Send an audio message', 'postback_data_456', '+15556667777', 'ACTION_TYPE_AUDIO') ] # Create text message to send to user text_msg = messages.TextMessage('Hello, world!') cluster = messages.MessageCluster().append_message(text_msg) # Append suggestions for the message to send to the user for suggestion in suggestions: cluster.append_suggestion_chip(suggestion) # Send a simple message with suggested action to the device cluster.send_to_msisdn('+12223334444')
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Create a compose text suggested action ComposeTextMessage composeTextMessage = new ComposeTextMessage{ PhoneNumber = "+15556667777" Text = "Draft to go into the send message text field." }; ComposeAction composeAction = new ComposeAction { ComposeTextMessage = composeTextMessage }; // Creating a suggested action based on a compose action SuggestedAction suggestedAction = new SuggestedAction { Text = "Send a text message", PostbackData = "postback_data_123", ComposeAction = composeAction }; // Attach action to a suggestion Suggestion suggestion = new Suggestion { Action = suggestedAction }; Listsuggestions = new List { suggestion }; rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", suggestions );
قائمة شرائح الاقتراحات
يرسل موظّف الدعم قوائم شرائح الاقتراحات مع رسائل لتوجيه الخطوات التالية التي يتّخذها المستخدمون. لا تظهر قائمة الشرائح إلا عندما تكون الرسالة المرتبطة في أسفل المحادثة. إنّ أي رسائل لاحقة في المحادثة (من أي مستخدم أو موظّف الدعم) تُحلّ محلّ قائمة الشرائح.
تتضمّن القائمة الردود المقترَحة و الإجراءات المقترَحة.
تحتوي قوائم الشرائح على 11 شريحة اقتراح كحد أقصى، ويمكن أن يحتوي كل تصنيف شريحة على 25 حرفًا كحد أقصى.
لمعرفة خيارات التنسيق والقيمة، راجِع
AgentContentMessage
.
بطاقات البحث الذكية
عندما تحتاج إلى إرسال مجموعة من المعلومات أو الوسائط أو الاقتراحات ذات الصلة، يجب إرسال بطاقة تفاعلية. تتيح البطاقات التفاعلية لموظّف الدعم إرسال وحدات متعدّدة من المعلومات في رسالة واحدة.
يمكن أن تحتوي البطاقات التفاعلية على العناصر التالية:
- صورة أو فيديو
- نص العنوان
- نص الوصف
- قائمة بالردود المقترَحة والإجراءات المقترَحة (4 إجراءات كحد أقصى)
يمكن أن تحتوي البطاقة التفاعلية على كل العناصر المدرَجة، ولكن يجب أن تحتوي البطاقة على صورة أو فيديو أو عنوان على الأقل لتكون صالحة. يمكن أن تحتوي البطاقة الغنية بصريًا على أربعة إجراءات مقترَحة أو ردود مقترَحة كحد أقصى. ولا يمكن أن يتضمّن مزيجًا من الإجراءات المقترَحة والردود المقترَحة في بطاقة واحدة.
يمكن لموظّف الدعم إرسال عدة بطاقات تفاعلية معًا في لوحة عرض دوّارة للبطاقات التفاعلية.
يبلغ الحد الأقصى لحجم الحمولة في البطاقة المزوّدة بمحتوى إضافي 250 كيلوبايت. اطّلِع على أفضل الممارسات المتعلّقة بحدود حجم ملفات الوسائط واقتراحاتها.
ارتفاع البطاقة
يتم توسيع البطاقات عموديًا لتلائم محتوياتها. يجب أن يكون الحد الأدنى لارتفاع البطاقات التفاعلية هو 112 نقطة كثافة بكسل والحد الأقصى هو 344 نقطة كثافة بكسل. إذا لم تكن محتويات البطاقة كبيرة بما يكفي لملء الحد الأدنى لارتفاع البطاقة، يتم توسيع البطاقة وتملأ الارتفاع الإضافي بمساحة فارغة.
يجب أن تتوافق الوسائط في البطاقات التفاعلية مع أحد الارتفاعات الثلاثة التالية:
- قصير: 112 وحدة بكسل مستقلة الكثافة
- متوسطة: 168 وحدة بكسل مستقلة الكثافة
- العمودي: 264 وحدة بكسل مستقلة الكثافة
إذا لم تلائم الوسائط الأبعاد ضمن البطاقة وفقًا للطول المحدّد، يتم اختيار معاينة الوسائط من خلال تكبير الوسائط واقتصاصها.
مثال
تُرسِل التعليمة البرمجية التالية بطاقة تفاعلية تتضمّن صورة وreplies مقترَحة. لمعرفة خيارات التنسيق والقيمة، راجِع
RichCard
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'richCard': { 'standaloneCard': { 'thumbnailImageAlignment': 'RIGHT', 'cardOrientation': 'VERTICAL', 'cardContent': { 'title': 'Hello, world!', 'description': 'RBM is awesome!', 'media': { 'height': 'TALL', 'contentInfo':{ 'fileUrl': 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif', 'forceRefresh': 'false' } }, 'suggestions': [ { 'reply': { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1' } }, { 'reply': { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2' } } ] } } } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Suggested replies to be used in the card let suggestions = [ { reply: { 'text': 'Suggestion #1', 'postbackData': 'suggestion_1', }, }, { reply: { 'text': 'Suggestion #2', 'postbackData': 'suggestion_2', }, }, ]; // Image to be displayed by the card let imageUrl = 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif'; // Definition of the card parameters let params = { messageText: 'Hello, world!', messageDescription: 'RBM is awesome!', msisdn: '+12223334444', suggestions: suggestions, imageUrl: imageUrl, height: 'TALL', }; // Send rich card to device rbmApiHelper.sendRichCard(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.StandaloneCard; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.cards.CardOrientation; import com.google.rbm.cards.MediaHeight; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Create suggestions for chip list List<Suggestion> suggestions = new ArrayList<Suggestion>(); suggestions.add( new SuggestionHelper("Suggestion #1", "suggestion_1").getSuggestedReply()); suggestions.add( new SuggestionHelper("Suggestion #2", "suggestion_2").getSuggestedReply()); String imageUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create a standalone rich card to send to the user StandaloneCard standaloneCard = rbmApiHelper.createStandaloneCard( "Hello, world!", "RBM is awesome!", imageUrl, MediaHeight.MEDIUM, CardOrientation.VERTICAL, suggestions ); rbmApiHelper.sendStandaloneCard(standaloneCard, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Suggested replies to be used in the card suggestions = [ messages.SuggestedReply('Suggestion #1', 'reply:suggestion_1'), messages.SuggestedReply('Suggestion #2', 'reply:suggestion_2') ] # Image to be displayed by the card image_url = 'http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif'; # Define rich card structure rich_card = messages.StandaloneCard('VERTICAL', 'Hello, world!', 'RBM is awesome!', suggestions, image_url, None, None, 'MEDIUM') # Append rich card and send to the user cluster = messages.MessageCluster().append_message(rich_card) cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; using RCSBusinessMessaging.Cards; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); List<Suggestion> suggestions = new List<Suggestion> { // Create suggestion chips new SuggestionHelper("Suggestion #1", "suggestion_1").SuggestedReply(), new SuggestionHelper("Suggestion #2", "suggestion_2").SuggestedReply() }; string imageUrl = "http://www.google.com/logos/doodles/2015/googles-new-logo-5078286822539264.3-hp2x.gif"; // Create rich card with suggestions StandaloneCard standaloneCard = rbmApiHelper.CreateStandaloneCard( "Hello, world!", "RBM is awesome", imageUrl, MediaHeight.TALL, CardOrientation.VERTICAL, suggestions ); // Send rich card to user rbmApiHelper.SendStandaloneCard(standaloneCard, "+12223334444");هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
لوحات العرض الدوّارة للبطاقات التفاعلية
عند تقديم خيارات متعدّدة للمستخدم للاختيار من بينها، استخدِم لوحة عرض دوّارة لبطاقات تفاعلية. تجمع لوحات العرض الدوّارة عدة بطاقات غنية معًا، ما يتيح للمستخدمين مقارنة العناصر والتفاعل مع كلٍّ منها بشكلٍ فردي.
يمكن أن تحتوي لوحات العرض الدوّارة على بطاقتَين بحدّ أدنى وعشر بطاقات بحدّ أقصى. يجب أن تكون البطاقات الغنية بصريًا ضمن لوحات العرض الدوّارة متوافقة مع متطلبات البطاقة الغنية بصريًا العامة المتعلّقة بالمحتوى والارتفاع.
يبلغ الحد الأقصى لحجم الحمولة في لوحة العرض الدوّارة للبطاقات الغنية 250 كيلوبايت. اطّلِع على أفضل الممارسات المتعلّقة بحدود حجم ملفات الوسائط واقتراحاتها.
الاقتطاع
تمامًا مثل البطاقات التفاعلية، تؤثر العديد من العوامل (مثل درجة دقة الشاشة وكثافة البكسل وإعدادات المستخدم المفضّلة) في طريقة ظهور البطاقات للمستخدمين النهائيين. في المقابل، في منصّة العرض الدوّارة، يحدّد ارتفاع البطاقات القليلة الأولى ارتفاع كل البطاقات في منصّة العرض الدوّارة، ويؤثّر ارتفاع البطاقة في اقتطاع العنوان والوصف والاقتراحات.
إذا تعذّر على أحد الأجهزة عرض جميع عناصر البطاقة بسبب قيود الشاشة أو ارتفاع البطاقة، تقتطع ميزة RBM البطاقة إلى أن تصبح قابلة للعرض على الجهاز، وذلك باستخدام المنطق التالي:
- اختصر الوصف إلى سطر واحد.
- اختصر العنوان إلى سطر واحد.
- إزالة الاقتراحات التي لا تتناسب مع البطاقة، بدءًا من نهاية القائمة المحدّدة
- إزالة الوصف
- إزالة العنوان
لتجنّب اقتطاع العناوين والأوصاف، احرص على اختصارها قدر الإمكان. بالنسبة إلى الوسائط الطويلة، استخدِم عنوانًا ووصفًا أو اقتراحًا واحدًا. بالنسبة إلى الوسائط متوسطة الحجم، استخدِم ما يصل إلى اقتراحَين. بالنسبة إلى الوسائط القصيرة، استخدِم ما يصل إلى ثلاثة اقتراحات. لتضمين أربعة اقتراحات، لا تُدرِج وسائط في البطاقة.
يجب أن تكون البطاقات متماثلة تقريبًا من حيث حجم المحتوى وطوله، وإذا كان ضروريًا، يمكنك تحميل لوحة العرض الدوّارة في المقدّمة باستخدام بطاقات أكبر لتجنّب اقتطاع البطاقات التالية.
مثال
تُرسِل التعليمة البرمجية التالية لوحة عرض دوّارة لبطاقة تفاعلية. للحصول على خيارات التنسيق والقيمة،
راجِع
RichCard
.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentMessages?messageId=MESSAGE_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'contentMessage': { 'richCard': { 'carouselCard': { 'cardWidth':'MEDIUM', 'cardContents': [ { 'title':'Card #1', 'description':'The description for card #1', 'suggestions': [ { 'reply': { 'text':'Card #1', 'postbackData':'card_1' } } ], 'media': { 'height':'MEDIUM', 'contentInfo': { 'fileUrl':'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg', 'forceRefresh':'false' } } }, { 'title':'Card #2', 'description':'The description for card #2', 'suggestions': [ { 'reply': { 'text':'Card #2', 'postbackData':'card_2' } } ], 'media': { 'height':'MEDIUM', 'contentInfo': { 'fileUrl':'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg', 'forceRefresh': 'false' } } } ] } } } }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Images for the carousel cards let card1Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg'; let card2Image = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg'; // Define the card contents for a carousel with two cards, each with one suggested reply let cardContents = [ { title: 'Card #1', description: 'The description for card #1', suggestions: [ { reply: { text: 'Card #1', postbackData: 'card_1', } } ], media: { height: 'MEDIUM', contentInfo: { fileUrl: card1Image, forceRefresh: false, }, }, }, { title: 'Card #2', description: 'The description for card #2', suggestions: [ { reply: { text: 'Card #2', postbackData: 'card_2', } } ], media: { height: 'MEDIUM', contentInfo: { fileUrl: card2Image, forceRefresh: false, }, }, }, ]; // Definition of carousel card let params = { msisdn: '+12223334444', cardContents: cardContents, }; // Send the device the carousel card defined above rbmApiHelper.sendCarouselCard(params, function(response) { console.log(response); });هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.
Java
import com.google.api.services.rcsbusinessmessaging.v1.model.CardContent; import com.google.api.services.rcsbusinessmessaging.v1.model.Suggestion; import com.google.rbm.cards.CardOrientation; import com.google.rbm.cards.CardWidth; import com.google.rbm.cards.MediaHeight; import com.google.rbm.RbmApiHelper; import com.google.rbm.SuggestionHelper; … try { // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); List cardContents = new ArrayList(); // Images for the carousel cards String card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg"; // Create suggestions for first carousel card List card1Suggestions = new ArrayList(); card1Suggestions.add( new SuggestionHelper("Card #1", "card_1")); cardContents.add( new StandaloneCardHelper( "Card #1", "The description for card #1", card1Image, card1Suggestions) .getCardContent(MediaHeight.SHORT) ); // Images for the carousel cards String card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg"; // Create suggestions for second carousel card List card2Suggestions = new ArrayList(); card2Suggestions.add( new SuggestionHelper("Card #2", "card_2")); cardContents.add( new StandaloneCardHelper( "Card #2", "The description for card #2", card2Image, card2Suggestions) .getCardContent(MediaHeight.SHORT) ); // Send the carousel to the user rbmApiHelper.sendCarouselCards(cardContents, CardWidth.MEDIUM, "+12223334444"); } catch(Exception e) { e.printStackTrace(); }هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service from rcs_business_messaging import messages # Images for the carousel cards card_image_1 = 'https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg'; card_image_2 = 'https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg'; # Suggested replies to be used in the cards suggestions1 = [ messages.SuggestedReply('Card #1', 'reply:card_1') ] suggestions2 = [ messages.SuggestedReply('Card #2', 'reply:card_2') ] # Define the card contents for a carousel with two cards, # each with one suggested reply card_contents = [] card_contents.append(messages.CardContent('Card #1', 'The description for card #1', card_image_1, 'MEDIUM', suggestions1)) card_contents.append(messages.CardContent('Card #2', 'The description for card #2', card_image_2, 'MEDIUM', suggestions2)) # Send the device the carousel card defined above carousel_card = messages.CarouselCard('MEDIUM', card_contents) cluster = messages.MessageCluster().append_message(carousel_card) cluster.send_to_msisdn('+12223334444')هذه التعليمات البرمجية هي مقتطف من نموذج وكيل RBM.
#C
using Google.Apis.RCSBusinessMessaging.v1.Data; using RCSBusinessMessaging; using RCSBusinessMessaging.Cards; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Image references to be used in the carousel cards string card1Image = "https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg"; string card2Image = "https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg"; // Suggestion chip lists to be used in carousel cards List<Suggestion> suggestions1 = new List<Suggestion> { new SuggestionHelper("Card #1", "card_1").SuggestedReply() }; List<Suggestion> suggestions2 = new List<Suggestion> { new SuggestionHelper("Card #2", "card_2").SuggestedReply() }; // Create the card content for the carousel List<CardContent> cardContents = new List<CardContent> { // Add items as card content new StandaloneCardHelper( "Card #1", "The description for card #1", card1Image, suggestions1).GetCardContent(), new StandaloneCardHelper( "Card #2", "The description for card #2", card2Image, suggestions2).GetCardContent() }; // Send the carousel to the user rbmApiHelper.SendCarouselCards(cardContents, CardWidth.MEDIUM, msisdn);هذه التعليمات البرمجية هي مقتطف من نموذج وكيل نموذج تحسين الأداء من خلال الربط.