يتواصل وكلاء RCS للأعمال مع المستخدمين عبر إرسال واستقبال الرسائل. لإرسال الرسائل، يرسل وكيلك طلبات الرسائل إلى واجهة برمجة تطبيقات RCS Business Messaging API. يمكن أن يتضمن الطلب الواحد نصًا ، وبطاقات تفاعلية ، وملفات وسائط، وملفات PDF ، وردودًا مقترحة ، وإجراءات مقترحة .
تقوم منصة RCS للأعمال بإرجاع الأخطاء في حالات معينة لمساعدتك في إدارة تسليم الرسائل:
- إذا أرسلت رسالة إلى مستخدم لا يدعم جهازه خدمة RCS أو لم يُفعّل لديه هذه الخدمة، فستُعيد منصة RCS للأعمال خطأ 404 (غير موجود). في هذه الحالة، يمكنك محاولة الوصول إلى المستخدم عبر طرق الاتصال البديلة المُعرّفة في بنيتك التحتية.
- إذا قمت بإرسال رسالة إلى مستخدم RCS على شبكة لم يتم تشغيل وكيلك عليها بعد، أو على شبكة لم تقم بتمكين حركة مرور RCS، فإن منصة RCS للأعمال تُرجع خطأ 404 NOT_FOUND.
- إذا قمت بإرسال رسالة تحتوي على ميزات لا يدعمها جهاز المستخدم، فإن منصة RCS للأعمال تُرجع خطأ 400 INVALID_ARGUMENT ولن تقوم بتسليم رسالتك.
كجزء من استراتيجية المراسلة متعددة القنوات، يُفضّل إلغاء الرسائل التي لم تصل بعد فترة زمنية معقولة وإرسالها عبر قناة أخرى. لإلغاء الرسائل تلقائيًا في وقت محدد مسبقًا، حدّد تاريخ انتهاء صلاحية الرسالة .
المستلم غير متصل بالإنترنت
لا تزال منصة RCS للأعمال تقبل الرسائل للتسليم حتى لو كان المستلم غير متصل بالإنترنت. ستتلقى ردًا برمز 200 OK، وستحتفظ منصة RCS للأعمال بالرسالة وتحاول إعادة تسليمها لمدة 30 يومًا. لا داعي لطلب إعادة إرسال الرسالة من RCS للأعمال.
يقوم نظام RCS للأعمال بحذف أي رسائل لم يتم تسليمها بعد 30 يومًا من تاريخ إرسالها.
بحسب حالة استخدام وكيلك، قد ترغب في إلغاء رسالة لم يتم تسليمها قبل انقضاء مهلة الثلاثين يومًا. يمنع الإلغاء المستخدمين غير المتصلين من تلقي رسالة قديمة عند عودتهم للاتصال بالإنترنت. توجد عدة طرق لإلغاء رسالة:
- أرسل طلب إلغاء لتفعيل عملية الإلغاء.
- قم بتعيين تاريخ انتهاء صلاحية الرسالة لإلغاء الرسالة تلقائيًا في الوقت المناسب.
حدد تاريخ انتهاء صلاحية الرسالة
هل رسائل وكيلك حساسة للوقت؟ على سبيل المثال، تكون رموز التحقق لمرة واحدة صالحة لفترة وجيزة فقط. تنتهي صلاحية العروض محدودة الوقت. كما أن تذكيرات المواعيد لا تكون ذات صلة بعد تاريخ الموعد. لضمان أن تكون الرسائل في الوقت المناسب وذات صلة، حدد تاريخ انتهاء صلاحية الرسالة. هذا يمنع المستخدمين غير المتصلين بالإنترنت من تلقي محتوى قديم عند عودتهم. كما يُعد تاريخ انتهاء الصلاحية مؤشرًا جيدًا لتفعيل استراتيجية الرسائل البديلة، بحيث يحصل المستخدمون على المعلومات التي يحتاجونها في الوقت المناسب.
لتعيين تاريخ انتهاء صلاحية الرسالة، حدد أحد الحقول التالية في رسالة الوكيل:
-
expireTime: الوقت المحدد بالتوقيت العالمي المنسق (UTC) الذي تنتهي فيه صلاحية الرسالة. -
ttl(مدة البقاء): مقدار الوقت قبل انتهاء صلاحية الرسالة.
للاطلاع على خيارات التنسيق والقيمة، راجع AgentMessage .
الحد الأقصى لقيمة ttl و expireTime هو 15 يومًا بعد إرسال الرسالة.
على الرغم من عدم وجود قيمة دنيا ttl و expireTime ، إلا أنه يوصى بـ 10 ثوانٍ على الأقل بعد إرسال الرسالة لتقليل فرصة تلقي إشعار بكل من الإلغاء والتسليم بشكل كبير.
مدة بقاء الرسالة (TTL)
عند تحديد مدة صلاحية رسالة RCS للأعمال، فإنك تحدد الفترة التي تُعتبر فيها الرسالة صالحة وقابلة للتسليم. إذا لم يتم تسليم الرسالة بنجاح إلى جهاز المستخدم خلال هذه المدة، فإن منصة RCS للأعمال تحاول تلقائيًا إلغاءها.
عند بدء عملية إلغاء رسالة، فإنك تطلب من منصة RCS للأعمال التوقف عن محاولة تسليم تلك الرسالة تحديدًا. مع ذلك، لا يؤثر هذا الإجراء إلا على محاولات التسليم اللاحقة. إذا كان جهاز المستخدم قد استلم الرسالة بنجاح، فإن معالجتها جارية، ولا يمكن لمنصة RCS للأعمال إلغاء الرسالة من جهاز المستخدم.
إليك ما يمكن توقعه بخصوص الإشعارات:
تم تسليم الرسالة خلال فترة الصلاحية المحددة: إذا اتصل جهاز المستخدم بالإنترنت واستقبل الرسالة قبل انتهاء فترة الصلاحية، فستتلقى إشعارًا
DELIVERED. لن يتم إرسال أي إشعار إلغاء، لأن الرسالة قد تم تسليمها بنجاح. هذا هو السيناريو الأكثر شيوعًا وتوقعًا.لم يتم تسليم الرسالة قبل انتهاء صلاحية TTL: إذا انتهت صلاحية TTL قبل وصول الرسالة إلى جهاز المستخدم (على سبيل المثال، إذا كان الجهاز غير متصل بالإنترنت)، تحاول منصة RCS للأعمال إلغاء الرسالة. ستتلقى إشعارًا بـ
TTL_EXPIRATION_REVOKED، مما يشير إلى أنه تمت إزالة الرسالة بنجاح من قائمة انتظار التسليم. في هذه الحالة، لن يتلقى المستخدم الرسالة.
توصيات للتعامل مع الحالات الاستثنائية
يقوم نظامنا بمعالجة تسليم رسائل RCS للأعمال وانتهاء صلاحية TTL بالتوازي. ولهذا السبب، قد تواجه حالات نادرة جدًا يكون فيها توقيت الإشعارات غير متوقع. على سبيل المثال، قد تتلقى إشعارًا بالتسليم وإشعارًا بانتهاء صلاحية TTL معًا، أو قد لا تتلقى أيًا منهما.
إليكم توصياتنا للتعامل مع إشعارات رسائل RCS للأعمال:
إشعار
DELIVERED: إذا تلقيت إشعارًاDELIVEREDلرسالة ما، فهذا يؤكد وصول الرسالة إلى المستخدم. يمكنك تجاهل أي إشعارات لاحقة متعلقة بمدة صلاحية الرسالة نفسها.إشعار
TTL_EXPIRATION_REVOKED: إذا تلقيت إشعارًا بخصوص مدة صلاحية الرسالة (TTL) مع الحالةTTL_EXPIRATION_REVOKED، فهذا يعني أن نظام RCS للأعمال قد توقف عن محاولة تسليم هذه الرسالة تحديدًا. يجب عليك التعامل مع هذه الرسالة على أنها لم تُسلّم، والمضي قدمًا في استراتيجية النسخ الاحتياطي إذا لزم الأمر.إشعار TTL بأي حالة أخرى: إذا تلقيت إشعار TTL بأي حالة أخرى، فهذا يشير إلى محاولة إلغاء غير حاسمة.
- بالنسبة للرسائل الهامة، مثل كلمات المرور لمرة واحدة (OTPs)، قم بتشغيل طريقة النسخ الاحتياطي الخاصة بك.
- بالنسبة للرسائل غير الحرجة، حدد ما إذا كنت ستبدأ عملية التراجع أم لا.
- عدم إرسال الإشعارات: في حالات نادرة للغاية، قد يفشل النظام في إرسال إشعار انتهاء الصلاحية، وقد يفشل العميل أيضًا في إنشاء إشعار التسليم. هذه حالة نادرة للغاية.
حدد نوع حركة مرور الرسائل
تتضمن واجهة برمجة تطبيقات messageTrafficType لتصنيف الرسائل. وبينما لا تزال حالات استخدام الوكيل تحدد سلوكه وقواعد العمل المطبقة، فإن messageTrafficType يتيح تصنيفًا أكثر تفصيلًا لمحتوى الرسائل. وهذا بدوره يمكّن وكيلًا واحدًا من التعامل مع حالات استخدام متعددة. ولا يوجد أي تأثير على حالات استخدام الوكيل أو قواعد العمل الحالية في الوقت الراهن.
هذا الحقل اختياري، ولكن يوصى بتعيينه الآن حتى لا تتلقى خطأً عندما يصبح الحقل مطلوبًا.
لتعيين نوع حركة مرور الرسائل، قم بتعيين messageTrafficType المناسب لكل رسالة بناءً على محتواها. يدعم RCS للأعمال أنواع حركة المرور التالية.
| نوع حركة المرور | محتوى الرسالة | حالة استخدام الوكيل |
|---|---|---|
AUTHENTICATION | لرسائل المصادقة. | رمز التحقق لمرة واحدة |
TRANSACTION | لإرسال رسائل تتعلق بخدمات أو منتجات المستخدم الحالية. على سبيل المثال: تأكيدات، إيصالات دفع، أو تفاصيل الحجز. | للاستخدامات المتعددة أو المعاملات |
PROMOTION | للرسائل الترويجية مثل العروض والخصومات والإعلانات أو غيرها من المحتويات الترويجية. | لأغراض ترويجية أو متعددة الاستخدامات |
SERVICEREQUEST | بالنسبة للرسائل المتعلقة بالخدمات التي طلبها المستخدم صراحةً. | كلمة مرور لمرة واحدة، أو معاملة، أو ترويجية، أو متعددة الاستخدام |
ACKNOWLEDGEMENT | بالنسبة للرسائل المستخدمة لتأكيد إجراء المستخدم - وتحديداً طلب إلغاء الاشتراك. يؤكد هذا استلام طلب المستخدم ومعالجته. | كلمة مرور لمرة واحدة، أو معاملة، أو ترويجية، أو متعددة الاستخدام |
إذا لم يتم تحديد نوع حركة المرور، يقوم النظام بتعيين النوع الافتراضي لحالة استخدام الوكيل .
| حالة استخدام الوكيل | نوع حركة المرور الافتراضي |
|---|---|
| رمز التحقق لمرة واحدة | AUTHENTICATION |
| المعاملات | TRANSACTION |
| ترويجي | PROMOTION |
| متعدد الاستخدامات | MESSAGE_TRAFFIC_TYPE_UNSPECIFIED |
لا يوجد نوع افتراضي لحركة البيانات في البرامج متعددة الاستخدام . يجب عليك تحديد نوع حركة البيانات بشكل صريح لكل رسالة بناءً على محتواها. في حال عدم تغيير قيمة MESSAGE_TRAFFIC_TYPE_UNSPECIFIED ، سيحدث خطأ.
حدود حجم الرسائل
يبلغ الحد الأقصى لحجم رسالة AgentMessage الكاملة 250 كيلوبايت. ويبلغ الحد الأقصى لحجم الجزء النصي من الرسالة 3072 حرفًا.
لتجنب استهلاك البيانات بشكل غير متوقع من قِبل المستخدمين، يبلغ الحد الأقصى لحجم الملف الذي يمكن إرساله عبر RCS للأعمال 100 ميجابايت، ويجب ألا يتجاوز الحجم الإجمالي لجميع ملفات الوسائط وملفات PDF المرفقة ضمن رسالة RCS للأعمال الواحدة 100 ميجابايت. (1 ميجابايت = 1,048,576 بايت). لمزيد من المعلومات، يُرجى مراجعة قسم ملفات الوسائط وملفات PDF .
نص
أبسط الرسائل هي الرسائل النصية. فالرسائل النصية هي الأنسب لنقل المعلومات دون الحاجة إلى صور أو تفاعل معقد أو ردود فعل.
مثال
يرسل الكود التالي رسالة نصية عادية. للاطلاع على خيارات التنسيق والقيمة، راجع phones.agentMessages.create .
حليقة
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!" }, "messageTrafficType": "PROMOTION" }'
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); rbmApiHelper.SendTextMessage( "Hello, world!", "+12223334444", );
محتوى الرسالة الأساسية - تحويل الرسائل النصية القصيرة
أدخلت شركات الاتصالات نماذج فوترة لدعم نقل رسائل SMS إلى خدمة RCS للأعمال. وتُسمى رسالة RCS للأعمال التي تحتوي على ما يصل إلى 160 حرفًا من ترميز UTF-8 بالرسالة الأساسية.
عند إنشاء طلب لإرسال رسالة أساسية، تذكر أن الأحرف تُحسب كبايت واحد (UTF-8). إذا أرسلت رسالة تحتوي على أحرف خاصة مثل الرموز التعبيرية أو مجموعة أحرف متعددة البايتات، فإن كل حرف يُحسب كبايتين إلى أربعة أحرف UTF-8 أو أكثر.
أدخل نصًا في المربع للتحقق من طوله:
معاينات محتوى الرسائل النصية والروابط
يمكن لعملاء RCS عرض معاينات الروابط. إذا تضمنت رسالة RCS للأعمال نصية فقط رابطًا لموقع ويب يحتوي على علامات openGraph ، فيمكن للعميل إنشاء معاينة (صورة، عنوان، إلخ)، مما يوفر تجربة أكثر ثراءً. على سبيل المثال، انظر إلى رسالة أساسية مع معاينة رابط .
يرجى الانتباه إلى أن برنامج RCS قد يسمح للمستخدم بتعطيل معاينات الروابط.
كلمات مرور لمرة واحدة للتحقق من المستخدم
يمكنك استخدام خدمة RCS للأعمال لإرسال كلمات مرور لمرة واحدة (OTP) للتحقق التلقائي من المستخدم باستخدام واجهة برمجة تطبيقات SMS Retriever. لا توجد واجهة برمجة تطبيقات مخصصة لقراءة كلمات المرور لمرة واحدة التي تصل عبر خدمة RCS للأعمال.
كيفية عملها على نظام أندرويد
بالنسبة لتطبيقات أندرويد المسجلة في واجهة برمجة تطبيقات استرجاع الرسائل النصية القصيرة ، تستمع هذه الواجهة إلى رسالة RCS للأعمال بتنسيق صحيح. يجب أن تحتوي هذه الرسالة على كلٍ من رمز التحقق لمرة واحدة (OTP) ورمز تجزئة فريد يُعرّف تطبيقك.
عند استلام رسالة RCS للأعمال بالتنسيق الصحيح، يقوم واجهة برمجة تطبيقات SMS Retriever بمعالجتها تمامًا كما لو كانت رسالة نصية قصيرة (OTP). بعد مطابقة التجزئة مع تطبيقك، يتم استخراج رمز التحقق (OTP) وإرساله إلى تطبيقك للتحقق التلقائي من المستخدم.
- نموذج رسالة نصية RCS للأعمال للتحقق من المستخدم:
Your code is <OTP><app hash>. - مثال:
Your code is 123456 M8tue43FGT.
للمزيد من المعلومات حول خدمة استرجاع الرسائل النصية القصيرة وواجهات برمجة التطبيقات ذات الصلة، راجع وثائق خدمة استرجاع الرسائل النصية القصيرة . وللحصول على تفاصيل حول التحقق التلقائي من المستخدم في التطبيقات المسجلة في واجهة برمجة تطبيقات خدمة استرجاع الرسائل النصية القصيرة، راجع مخطط التدفق هذا.
كيفية عملها على نظام iOS
بالنسبة لنظام iOS، يقوم النظام تلقائيًا بمعالجة رموز التحقق لمرة واحدة (OTP) المدمجة، حيث يكتشف رموز RCS للأعمال ويقترحها لتعبئة الحقول تلقائيًا، تمامًا مثل رموز SMS. ولا يتطلب تطبيق iOS أي تكامل خاص مع واجهة برمجة التطبيقات (API) لقراءة رمز التحقق لمرة واحدة.
ملفات الوسائط وملفات PDF
عند إرسال رسالة تحتوي على صورة أو فيديو أو ملف صوتي أو ملف PDF، يجب على وكيلك توفير عنوان URL يمكن الوصول إليه بشكل عام للمحتوى أو تحميل الملف مباشرة.
الحد الأقصى لحجم الملف الذي يمكن إرساله هو 100 ميجابايت، ويجب ألا يتجاوز الحجم الإجمالي لجميع الوسائط ومرفقات PDF داخل رسالة واحدة 100 ميجابايت.
ضغط الوسائط وتحويل الترميز
تقوم منصة RCS للأعمال تلقائيًا بتحويل وضغط ملفات الوسائط (مثل الصور ومقاطع الفيديو) قبل إرسالها للتأكد من تحميلها بسرعة وعملها بشكل جيد على الشبكات والأجهزة المختلفة.
يعتمد الضغط على جودة الوسائط المُدخلة وليس على حدود حجم الملف فقط. هذا يعني أنه يمكن ضغط الملف حتى لو كان حجمه أقل بكثير من الحد الأقصى البالغ 100 ميجابايت. تتغير معايير إعادة الترميز باستمرار، لذا لا يوجد حد ثابت لحجم الملف يحدد متى يتم تجاوز إعادة الترميز. جرّب تنسيقات الوسائط المختلفة وأبعادها ومعدلات الضغط للعثور على التوازن الأمثل لبياناتك.
مواصفات الصور المصغرة
بالنسبة لملفات الوسائط، يمكنك أيضاً تحديد صورة مصغرة تتيح للمستخدمين معاينة المحتوى قبل النقر عليه. أما بالنسبة لملفات الصوت، فيتم استخدام أداة الصوت الافتراضية كعنصر نائب.
- يبلغ الحد الأقصى لحجم ملف الصورة المصغرة 100 كيلوبايت. وللحصول على أفضل تجربة للمستخدم، نوصي بأن يكون حجمها 50 كيلوبايت أو أقل.
- يجب أن تتطابق نسبة أبعاد الصورة المصغرة مع نسبة أبعاد الملف الأصلي.
إدارة التخزين المؤقت وعناوين URL
تقوم منصة RCS للأعمال بتخزين الملفات مؤقتًا لمدة 60 يومًا، وتُعيد واجهة برمجة التطبيقات (API) مُعرّف الملف الذي يمكن لوكيلك تضمينه في الرسائل المُرسلة إلى المستخدمين. بعد انقضاء 60 يومًا، تقوم RCS للأعمال بإزالة الملفات من ذاكرة التخزين المؤقت.
عند تحديد الملفات عبر عنوان URL، يُنصح بتعطيل contentMessage.forceRefresh contentMessage.forceRefresh . يؤدي تفعيل false true إلى إجبار RCS for Business على جلب المحتوى الجديد من عنوان URL المحدد، حتى لو كان محتوى عنوان URL مخزنًا مؤقتًا، مما يزيد من وقت وصول الرسائل إلى المستخدمين.
أمثلة على عناوين URL للملفات
يرسل الكود التالي صورة. للاطلاع على خيارات التنسيق والقيمة، راجع AgentContentMessage .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 -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 JSONcurl -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 JSONcurl -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" } } }'
أنواع الوسائط المدعومة
يدعم RCS للأعمال أنواع الوسائط التالية. أما بالنسبة للصور المصغرة، فيدعم فقط أنواع الوسائط التالية: image/jpeg، وimage/jpg، وimage/gif، وimage/png.
| نوع الوسائط | نوع المستند | امتداد | يعمل مع البطاقات الغنية |
|---|---|---|---|
| تطبيق/ogg | صوت OGG | .ogx | لا |
| تطبيق/pdf | ملف PDF | ملف PDF | نعم (خاص بخدمة رسائل جوجل في الهند فقط) |
| صوت/AAC | صوت AAC | .aac | لا |
| ملف صوتي/mp3 | ملف صوتي بصيغة MP3 | ملف صوتي بصيغة MP3 | لا |
| صوت/mpeg | صوت MPEG | .mpeg | لا |
| صوت/mpg | صوت MPG | ملف صوتي بصيغة MP3 | لا |
| ملف صوتي/mp4 | ملف صوتي بصيغة MP4 | ملف فيديو بصيغة MP4 | لا |
| audio/mp4-latm | ملف صوتي MP4-latm | ملف فيديو بصيغة MP4 | لا |
| صوت/3gpp | صوت 3GPP | .3gp | لا |
| صورة/jpeg | JPEG | .jpeg، .jpg | نعم |
| صورة/gif | صورة متحركة GIF | .gif | نعم |
| صورة/png | PNG | .png | نعم |
| فيديو/h263 | فيديو H263 | .h263 | نعم |
| فيديو/m4v | فيديو M4V | ملف m4v | نعم |
| فيديو/mp4 | فيديو MP4 | ملف فيديو بصيغة MP4 | نعم |
| فيديو/mpeg4 | فيديو MPEG-4 | .mp4، .m4p | نعم |
| فيديو/mpeg | فيديو MPEG | .mpeg | نعم |
| فيديو/ويب إم | فيديو WEBM | .webm | نعم |
اقتراحات
يقوم وكيلك بإرسال الاقتراحات (الردود المقترحة والإجراءات المقترحة) في قوائم رقائق الاقتراحات أو في البطاقات الغنية .
الردود المقترحة
تساعد الردود المقترحة المستخدمين على اجتياز المحادثات من خلال تقديم ردود يعرف وكيلك كيفية التفاعل معها.
عندما ينقر المستخدم على رد مقترح، يتلقى وكيلك حدثًا يحتوي على نص الرد وبيانات الرد . يبلغ الحد الأقصى لحجم البيانات 2048 حرفًا.
مثال
يرسل الكود التالي نصًا مع ردين مقترحين. للاطلاع على خيارات التنسيق والقيمة، راجع SuggestedReply .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 );
الإجراءات المقترحة
تُساعد الإجراءات المقترحة المستخدمين على إتمام المحادثات من خلال الاستفادة من الوظائف المدمجة في أجهزتهم. يمكن لوكيلك أن يقترح على المستخدمين الاتصال برقم، أو فتح موقع على الخريطة، أو مشاركة موقع، أو فتح رابط، أو إنشاء حدث في التقويم.
لكل إجراء مقترح، يمكنك اختيارياً توفير رابط بديل (بحد أقصى 2048 حرفاً). يُفتح هذا الرابط في نافذة متصفح جديدة إذا كان جهاز المستخدم لا يدعم الإجراء المقترح.
عندما ينقر المستخدم على إجراء مقترح، يتلقى وكيلك حدثًا يحتوي على بيانات رد الاتصال الخاصة بالإجراء .
للاطلاع على خيارات التنسيق والقيمة، انظر إلى SuggestedAction .
عرض الاقتراحات
هناك طريقتان لعرض الاقتراحات:
- ثابت : الإجراءات أو الردود المقترحة التي تظهر داخل فقاعة الرسالة وتبقى ثابتة طوال المحادثة.
- مؤقت : اقتراحات تظهر خارج فقاعة الرسالة وتختفي عند استمرار المحادثة.
تنسيقات الرسائل المدعومة
- اقتراحات مستمرة: العمل مع الرسائل النصية المستقلة والبطاقات الغنية.
- اقتراحات مؤقتة: تعمل مع الرسائل النصية المستقلة، ورسائل الوسائط المتعددة، والبطاقات الغنية.
دمج الاقتراحات
يمكنك دمج الاقتراحات الدائمة والعابرة في نفس الرسالة أو البطاقة الغنية.
- الرسائل النصية: الاقتراحات مؤقتة بشكل افتراضي. لجعلها تبقى داخل الفقاعة، يجب عليك ضبطها على أنها دائمة.
- البطاقات الغنية: تدعم هذه البطاقات ما يصل إلى أربعة اقتراحات دائمة بشكل افتراضي. يمكنك بعد ذلك إضافة اقتراحات مؤقتة كقائمة "شرائح" أسفل البطاقة.
حدود الاقتراحات
تدعم الرسالة النصية الواحدة 11 اقتراحًا كحد أقصى. تُحتسب أي اقتراحات دائمة تُضيفها ضمن هذا الحد الإجمالي. على سبيل المثال، إذا أضفت 4 اقتراحات دائمة، يمكنك إضافة ما يصل إلى 7 اقتراحات مؤقتة.
| نوع الاقتراح | حد | حيثما يظهرون |
|---|---|---|
| مثابر | حتى 4 | داخل فقاعة الرسائل |
| عابر | حتى 11 | خارج الفقاعة (على شكل رقائق) |
الحد الأقصى للأحرف
كل اقتراح لا يتجاوز 25 حرفًا.
شفافية عنوان URL في الإجراءات المقترحة
لتعزيز ثقة المستخدم، يُعرض عنوان URL الأساسي كسطر نصي ثانٍ داخل زر الاقتراحات الخاص بإجراءات "فتح عنوان URL". وينطبق هذا السلوك المتسق على الرسائل النصية المستقلة والبطاقات التفاعلية والشرائح الدوارة.
دعم العملاء في تقديم اقتراحات مستمرة
- مدعوم: رسائل جوجل (الإصدار
20260225.00أو أحدث). - غير مدعوم: إصدارات Google Messages الأقدم من
20260225.00، و iOS، و Samsung Messages.
اتصل برقم
يُتيح لك خيار "الاتصال" طلب رقم هاتف مُحدد من قِبل وكيلك. يجب أن تتضمن أرقام الهواتف الأرقام فقط ( 0-9 )، وعلامة الجمع ( + )، وعلامة النجمة ( * )، وعلامة الرقم ( # ). يدعم النظام تنسيق E.164 الدولي (على سبيل المثال، +14155555555 ) ولكنه ليس إلزاميًا. أي أن كلاً من +14155555555 و 1011 يُعتبران إدخالين صحيحين.
مثال
يرسل الكود التالي إجراء اتصال. للاطلاع على خيارات التنسيق والقيمة، راجع DialAction .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 );
عرض الموقع
يعرض خيار "عرض الموقع" موقعًا في تطبيق الخرائط الافتراضي للمستخدم. يمكنك تحديد الموقع إما باستخدام خطوط الطول والعرض أو من خلال استعلام يعتمد على الموقع الحالي للمستخدم. كما يمكنك تعيين تسمية مخصصة للعلامة التي تظهر في تطبيق الخرائط.
مثال
يرسل الكود التالي إجراء تحديد موقع العرض. للاطلاع على خيارات التنسيق والقيمة، راجع ViewLocationAction .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 -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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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
تتيح لك خاصية "فتح عنوان URL" توجيه المستخدمين إلى صفحة ويب يحددها وكيلك. بشكل افتراضي، تُفتح صفحة الويب في متصفح المستخدم. يمكنك أيضًا ضبط صفحة الويب لتُفتح في عرض ويب. راجع قسم "فتح عنوان URL باستخدام عرض ويب" لمزيد من التفاصيل.
حصريًا في تطبيق رسائل جوجل
عرض عنوان URL الأساسي : لتحسين الشفافية في رسائل التطبيقات إلى الأشخاص (A2P)، يعرض تطبيق رسائل جوجل عنوان URL الأساسي ضمن الإجراءات المقترحة "فتح عنوان URL". يؤثر هذا التغيير على الإجراءات المقترحة في البطاقات التفاعلية القياسية وشرائح البطاقات التفاعلية الدوارة .

عرض أيقونة التطبيق لروابط الويب : إذا كان لدى المستخدم تطبيق افتراضي مُعدّ لصفحة الويب، فسيتم فتح هذا التطبيق بدلاً من المتصفح أو عرض الويب، وسيظهر زر الاقتراحات أيقونة التطبيق. لكي تظهر أيقونة التطبيق في رسائل جوجل، يجب عليك تقديم عنوان URL الكامل والمباشر. في حال استخدام عنوان URL مختصر، ستظهر أيقونة "فتح عنوان URL" الافتراضية بدلاً من ذلك.

مثال
يرسل الكود التالي إجراء فتح عنوان URL. للاطلاع على خيارات التنسيق والقيمة، راجع OpenUrlAction .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 );
افتح عنوان URL باستخدام عرض الويب
تتيح لك خاصية "فتح عنوان URL باستخدام عرض الويب" تحميل صفحة الويب المحددة داخل تطبيق المراسلة باستخدام محرك عرض المتصفح الافتراضي. وهذا يسمح للمستخدم بالتفاعل مع صفحة الويب دون مغادرة محادثة RCS للأعمال. إذا كان جهاز المستخدم لا يدعم عروض الويب، فسيتم فتح صفحة الويب في متصفح المستخدم. لتفعيل عروض الويب، راجع OpenURLApplication .
تحتوي عروض الويب على ثلاثة أوضاع عرض. للاطلاع على خيارات التنسيق والقيم، راجع WebviewViewMode .
- ملء الشاشة: تشغل صفحة الويب الشاشة بالكامل
- نصف: تشغل صفحة الويب نصف الشاشة
- طويل: تشغل صفحة الويب ثلاثة أرباع الشاشة
مثال
يرسل الكود التالي إجراء Open URL مع عرض الويب. للاطلاع على خيارات التنسيق والقيمة، راجع OpenURLAction .
حليقة
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" } } } ] } }'
جافا
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; }
إنشاء حدث في التقويم
يقوم إجراء إنشاء حدث في التقويم بفتح تطبيق التقويم الخاص بالمستخدم ويبدأ في إنشاء حدث جديد بالمعلومات المحددة.
عنوان الحدث في التقويم مطلوب، ويبلغ الحد الأقصى له 100 حرف. أما وصف الحدث فهو اختياري، ويبلغ الحد الأقصى له 500 حرف.
مثال
يرسل الكود التالي إجراء إنشاء حدث في التقويم. للاطلاع على خيارات التنسيق والقيمة، راجع CreateCalendarEventAction .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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 );
قائمة رقائق الاقتراحات
يرسل وكيلك قوائم اقتراحات تتضمن رسائل لتوجيه المستخدمين في خطواتهم اللاحقة. لا تظهر قائمة الاقتراحات إلا عندما تكون الرسالة المرتبطة بها في أسفل المحادثة. أي رسائل لاحقة في المحادثة (سواء من المستخدم أو من وكيلك) تحل محل قائمة الاقتراحات.
الرقائق الموجودة في القائمة هي ردود مقترحة وإجراءات مقترحة .
تحتوي قوائم الرقائق على 11 رقاقة اقتراح كحد أقصى، ويمكن أن تحتوي كل تسمية رقاقة على 25 حرفًا كحد أقصى.
للاطلاع على خيارات التنسيق والقيمة، راجع AgentContentMessage .
بطاقات ريتش
تجمع البطاقات التفاعلية بين الوسائط والنصوص والاقتراحات التفاعلية في رسالة واحدة. وهي مثالية لعرض المعلومات ذات الصلة (على سبيل المثال، منتج مع صورته واسمه وسعره) وتوجيه المستخدمين من خلال اقتراح واضح للخطوة التالية مثل "عرض التفاصيل".
يمكن أن تحتوي البطاقة الغنية على ما يلي:
- الوسائط (صورة، أو صورة متحركة GIF، أو فيديو)
- نص العنوان
- نص الوصف
- الردود المقترحة والإجراءات المقترحة (بحد أقصى 4)
كل من هذه الحقول اختياري، ولكن يجب تضمين حقل واحد على الأقل من الحقول 1-3 في البطاقة الغنية.
يمكن إرسال عدة بطاقات معًا في شريط تمرير أفقي.
لاحظ أن إجمالي حجم البيانات المرسلة لبطاقة غنية يبلغ 250 كيلوبايت.
للاطلاع على التفاصيل الفنية الكاملة، راجع وثائق بطاقات ريتش .
ارتفاع البطاقة
تتمدد البطاقات الغنية عموديًا لتناسب محتوياتها. يبلغ الحد الأدنى لارتفاعها 112 نقطة، والحد الأقصى 344 نقطة. إذا لم يكن محتوى البطاقة كبيرًا بما يكفي لملء الحد الأدنى لارتفاعها، فإنها تتمدد وتملأ المساحة الزائدة بمساحة بيضاء.
يجب أن تتناسب الوسائط في البطاقات الغنية مع أحد الارتفاعات الثلاثة التالية:
- قصير: 112 DP
- متوسط: 168 نقطة في البوصة
- الطول: 264 DP
إذا لم تتناسب الوسائط مع الأبعاد الموجودة داخل البطاقة بالنظر إلى الارتفاع المحدد، فسيتم اختيار معاينة الوسائط عن طريق تكبير الوسائط واقتصاصها.
مثال
يرسل الكود التالي بطاقة تفاعلية تحتوي على صورة وردود مقترحة. للاطلاع على خيارات التنسيق والقيم، راجع RichCard .
حليقة
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); });
جافا
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(); }
بايثون
# 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')
سي شارب
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");
دوارات البطاقات الغنية
تجمع الشرائح الدوارة بين العديد من البطاقات الغنية ، مما يسمح للمستخدمين بمقارنة العناصر والتفاعل مع كل منها على حدة.
يمكن أن تحتوي الشرائح الدوارة على بطاقتين كحد أدنى وعشر بطاقات كحد أقصى. يجب أن تتوافق البطاقات داخل الشرائح الدوارة مع متطلبات البطاقات العامة من حيث المحتوى والارتفاع، كما هو موضح في وثائق البطاقات . لمزيد من المعلومات حول تصميم الشرائح الدوارة ومواصفاتها، راجع وثائق الشرائح الدوارة .
مثال
يُرسل الكود التالي شريط تمرير للبطاقات الغنية. للاطلاع على خيارات التنسيق والقيم، راجع RichCard .
حليقة
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/welcome-bot-sample-images/200.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/welcome-bot-sample-images/201.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/welcome-bot-sample-images/200.jpg'; let card2Image = 'https://storage.googleapis.com/welcome-bot-sample-images/201.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); });
جافا
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/welcome-bot-sample-images/200.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/welcome-bot-sample-images/201.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(); }
بايثون
# 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/welcome-bot-sample-images/200.jpg'; card_image_2 = 'https://storage.googleapis.com/welcome-bot-sample-images/201.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')
سي شارب
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/welcome-bot-sample-images/200.jpg"; string card2Image = "https://storage.googleapis.com/welcome-bot-sample-images/201.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);