ارسال پیام

نمایندگان RCS برای کسب و کار با ارسال و دریافت پیام با کاربران ارتباط برقرار می‌کنند. برای ارسال پیام به کاربران، نماینده شما درخواست‌های پیام را به API پیام‌رسانی تجاری RCS ارسال می‌کند. یک درخواست واحد می‌تواند شامل متن ، کارت‌های غنی ، فایل‌های رسانه‌ای و PDF ، پاسخ‌های پیشنهادی و اقدامات پیشنهادی باشد.

پلتفرم RCS for Business در موقعیت‌های خاص خطاها را برمی‌گرداند تا به شما در مدیریت ارسال پیام کمک کند:

  • اگر به کاربری که دستگاهش از RCS پشتیبانی نمی‌کند یا RCS در آن فعال نیست، پیام ارسال کنید، پلتفرم RCS for Business خطای 404 NOT_FOUND را برمی‌گرداند. در این حالت، می‌توانید از طریق روش‌های جایگزین تعریف‌شده در زیرساخت خود، برای دسترسی به کاربر تلاش کنید.
  • اگر پیامی را به یک کاربر RCS در شبکه‌ای که هنوز عامل شما راه‌اندازی نشده است، یا در شبکه‌ای که ترافیک RCS را فعال نکرده است، ارسال کنید، پلتفرم RCS برای کسب‌وکار خطای 404 NOT_FOUND را برمی‌گرداند.
  • اگر پیامی با ویژگی‌هایی ارسال کنید که دستگاه کاربر از آنها پشتیبانی نمی‌کند، پلتفرم RCS for Business خطای ۴۰۰ INVALID_ARGUMENT را برمی‌گرداند و پیام شما را ارسال نمی‌کند.

به عنوان بخشی از استراتژی پیام‌رسانی چندکاناله خود، بهتر است پیام‌هایی را که پس از مدت زمان معقولی تحویل داده نمی‌شوند، لغو کنید و آنها را از طریق کانال دیگری ارسال کنید. برای لغو خودکار پیام‌ها در یک زمان از پیش تعریف‌شده، یک تاریخ انقضا برای پیام تعیین کنید.

گیرنده آنلاین نیست.

پلتفرم RCS for Business در صورت آفلاین بودن گیرنده، همچنان پیام را برای تحویل می‌پذیرد. شما یک پاسخ 200 OK دریافت می‌کنید و پلتفرم RCS for Business پیام را نگه می‌دارد و به مدت 30 روز سعی در ارسال مجدد آن می‌کند. نیازی به درخواست از RCS for Business برای ارسال مجدد پیام نیست.

RCS for Business هرگونه پیام تحویل داده نشده را 30 روز پس از ارسال آنها حذف می‌کند.

بسته به مورد استفاده‌ی نماینده‌ی شما، ممکن است بخواهید قبل از این مهلت ۳۰ روزه، یک پیام تحویل داده نشده را لغو کنید . لغو می‌تواند از دریافت پیام قدیمی توسط کاربران آفلاین هنگام آنلاین شدن مجدد جلوگیری کند. روش‌های مختلفی برای لغو یک پیام وجود دارد:

تنظیم تاریخ انقضای پیام

آیا نماینده شما به زمان پیام حساس است؟ برای مثال، رمزهای یک‌بار مصرف (OTP) فقط برای مدت کوتاهی معتبر هستند. پیشنهادهای با زمان محدود منقضی می‌شوند. و یادآوری‌های قرار ملاقات پس از تاریخ قرار ملاقات دیگر مرتبط نیستند. برای اینکه پیام‌ها به‌روز و مرتبط باشند، برای پیام‌ها تاریخ انقضا تعیین کنید. این کار می‌تواند از دریافت محتوای قدیمی توسط کاربران آفلاین هنگام آنلاین شدن مجدد جلوگیری کند. تاریخ انقضا همچنین نشانه خوبی برای فراخوانی استراتژی پیام‌رسانی جایگزین شماست تا کاربران اطلاعات مورد نیاز خود را به موقع دریافت کنند.

برای تنظیم انقضای پیام، یکی از فیلدهای زیر را در پیام اپراتور مشخص کنید:

  • expireTime : زمان دقیق انقضای پیام به واحد زمانی UTC.
  • ttl (زمان حیات): مدت زمان قبل از انقضای پیام.

برای گزینه‌های قالب‌بندی و مقدار، به AgentMessage مراجعه کنید.

حداکثر مقدار برای ttl و expireTime ، ۱۵ روز پس از ارسال پیام است.

اگرچه حداقل مقداری برای ttl و expireTime وجود ندارد، اما توصیه می‌شود حداقل ۱۰ ثانیه پس از ارسال پیام، این کار را انجام دهید تا احتمال دریافت اعلان لغو و تحویل پیام به طور قابل توجهی کاهش یابد.

زمان حیات (TTL) برای یک پیام

وقتی برای یک پیام RCS for Business یک TTL تنظیم می‌کنید، مشخص می‌کنید که پیام تا چه مدت باید معتبر و قابل تحویل در نظر گرفته شود. اگر پیام در این دوره TTL با موفقیت به دستگاه کاربر تحویل داده نشود، پلتفرم RCS for Business به طور خودکار سعی در لغو آن می‌کند.

وقتی لغو پیام را آغاز می‌کنید، از پلتفرم RCS for Business درخواست می‌کنید که تلاش برای تحویل آن پیام خاص را متوقف کند. با این حال، این اقدام فقط بر تلاش‌های تحویل آینده تأثیر می‌گذارد. اگر دستگاه کاربر قبلاً پیام را با موفقیت دریافت کرده باشد، پیام در حال پردازش است و پلتفرم RCS for Business نمی‌تواند پیام را از دستگاه کاربر لغو کند.

در مورد اعلان‌ها چه انتظاری باید داشت:

  • پیام در محدوده‌ی TTL تحویل داده شد: اگر دستگاه کاربر قبل از انقضای TTL آنلاین شود و پیام را دریافت کند، اعلان DELIVERED دریافت خواهید کرد. هیچ اعلان لغو ارسال نخواهد شد، زیرا پیام با موفقیت تحویل داده شده است. این رایج‌ترین و مورد انتظارترین سناریو است.

  • پیام قبل از انقضای TTL تحویل داده نمی‌شود: اگر TTL قبل از رسیدن پیام به دستگاه کاربر منقضی شود (برای مثال، دستگاه آفلاین باشد)، پلتفرم RCS for Business تلاش می‌کند تا پیام را لغو کند. شما یک اعلان TTL_EXPIRATION_REVOKED دریافت می‌کنید که نشان می‌دهد پیام با موفقیت از صف تحویل حذف شده است. در این حالت، کاربر پیام را دریافت نخواهد کرد.

توصیه‌هایی برای رسیدگی به موارد حاشیه‌ای

سیستم ما RCS برای تحویل پیام‌های تجاری و انقضای TTL را به صورت موازی پردازش می‌کند. به همین دلیل، به ندرت ممکن است موارد خاصی را مشاهده کنید که زمان‌بندی اعلان‌ها غیرمنتظره باشد. به عنوان مثال، ممکن است هم اعلان تحویل و هم اعلان TTL را دریافت کنید یا هیچ‌کدام را دریافت نکنید.

در اینجا توصیه‌های ما برای مدیریت اعلان‌های پیام RCS برای کسب‌وکار آمده است:

  • اعلان DELIVERED : اگر برای یک پیام، اعلان DELIVERED دریافت کنید، تأیید می‌کند که پیام به کاربر رسیده است. می‌توانید با خیال راحت هرگونه اعلان TTL بعدی برای آن پیام خاص را نادیده بگیرید.

  • اعلان TTL_EXPIRATION_REVOKED : اگر اعلان TTL با وضعیت TTL_EXPIRATION_REVOKED دریافت کردید، به این معنی است که سیستم RCS for Business تلاش برای تحویل آن پیام خاص را متوقف می‌کند. شما باید این پیام را به عنوان پیام تحویل داده نشده در نظر بگیرید و در صورت نیاز، استراتژی جایگزین خود را ادامه دهید.

  • اعلان TTL با هر وضعیت دیگری: اگر اعلان TTL با هر وضعیت دیگری دریافت کردید، این نشان دهنده تلاش بی‌نتیجه برای لغو است.

    • برای پیام‌های حیاتی، مانند رمزهای عبور یکبار مصرف (OTP)، روش جایگزین خود را آغاز کنید.
    • برای پیام‌های غیربحرانی، تصمیم بگیرید که آیا می‌خواهید حالت بازگشت به حالت اولیه را فعال کنید یا خیر.
  • عدم اعلان: در موارد نادر، ممکن است سیستم در ارسال اعلان TTL ناموفق باشد و کلاینت نیز نتواند اعلان تحویل را ایجاد کند. این یک مورد بسیار نادر است.

نوع ترافیک پیام را تنظیم کنید

API مربوط به RBM شامل یک فیلد messageTrafficType برای دسته‌بندی پیام‌ها است. در حالی که موارد استفاده از عامل همچنان رفتار عامل و قوانین تجاری اعمال شده را تعریف می‌کند، messageTrafficType امکان دسته‌بندی دقیق‌تر محتوای پیام را فراهم می‌کند. در نهایت، این امر امکان مدیریت چندین مورد استفاده را برای یک عامل فراهم می‌کند. در حال حاضر هیچ تاثیری بر موارد استفاده از عامل یا قوانین تجاری موجود ندارد.

این فیلد اختیاری است، اما توصیه می‌شود که همین حالا آن را تنظیم کنید تا در صورت اجباری شدن فیلد، خطایی دریافت نکنید.

برای تنظیم نوع ترافیک پیام، بر اساس محتوای هر پیام، messageTrafficType مناسب را به آن اختصاص دهید. RCS for Business از انواع ترافیک زیر پشتیبانی می‌کند.

نوع ترافیک محتوای پیام مورد استفاده عامل
AUTHENTICATION برای پیام‌های احراز هویت. یک بار مصرف (OTP)
TRANSACTION برای پیام‌هایی در مورد خدمات یا محصولات فعلی کاربر. به عنوان مثال: تأییدیه‌ها، رسیدهای پرداخت یا جزئیات رزرو. تراکنشی یا چند منظوره
PROMOTION برای پیام‌های تبلیغاتی مانند پیشنهادات، تخفیف‌ها، اطلاعیه‌ها یا سایر محتوای تبلیغاتی. تبلیغاتی یا چند منظوره
SERVICEREQUEST برای پیام‌هایی درباره خدماتی که کاربر صریحاً درخواست کرده است. رمز یکبار مصرف (OTP)، تراکنشی، تبلیغاتی یا چندمنظوره
ACKNOWLEDGEMENT برای پیام‌هایی که برای تأیید اقدام کاربر استفاده می‌شوند - به طور خاص درخواست لغو اشتراک. این تأیید می‌کند که درخواست کاربر دریافت شده و در حال پردازش است. رمز یکبار مصرف (OTP)، تراکنشی، تبلیغاتی یا چندمنظوره

اگر هیچ نوع ترافیکی تنظیم نشده باشد، سیستم نوع پیش‌فرض را برای مورد استفاده‌ی عامل تعیین می‌کند.

مورد استفاده عامل نوع ترافیک پیش‌فرض
یک بار مصرف (OTP) AUTHENTICATION
تراکنشی TRANSACTION
تبلیغاتی PROMOTION
چند منظوره MESSAGE_TRAFFIC_TYPE_UNSPECIFIED

عامل‌های چندمنظوره نوع ترافیک پیش‌فرضی ندارند. شما باید نوع ترافیک را برای هر پیام بر اساس محتوای آن به طور صریح تنظیم کنید. اگر مقدار MESSAGE_TRAFFIC_TYPE_UNSPECIFIED را جایگزین نکنید، خطایی رخ می‌دهد.

محدودیت‌های اندازه پیام

حداکثر اندازه کل AgentMessage رشته‌ای ۲۵۰ کیلوبایت است. بخش متنی پیام محدودیت خاص خود را دارد که ۳۰۷۲ کاراکتر است.

برای جلوگیری از مصرف غیرمنتظره داده برای کاربران، حداکثر اندازه فایلی که می‌توان از طریق RCS برای کسب‌وکار ارسال کرد ۱۰۰ مگابایت است و کل اندازه ترکیبی همه فایل‌های رسانه‌ای و PDF پیوست‌شده در یک پیام RCS برای کسب‌وکار نباید از ۱۰۰ مگابایت بیشتر شود. (۱ مگابایت = ۱,۰۴۸,۵۷۶ بایت). برای اطلاعات بیشتر، به فایل‌های رسانه‌ای و 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"
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

using RCSBusinessMessaging;


// Create an instance of the RBM API helper
RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation,
                                             projectId);

rbmApiHelper.SendTextMessage(
    "Hello, world!",
    "+12223334444",
);
این کد گزیده‌ای از یک عامل نمونه RBM است.

محتوای پیام پایه - تبدیل پیامک

اپراتورها مدل‌های صورتحساب را برای پشتیبانی از انتقال پیام‌های SMS به RCS برای کسب‌وکارها معرفی کرده‌اند. یک پیام RCS برای کسب‌وکار که حاوی حداکثر ۱۶۰ کاراکتر UTF-8 باشد، پیام پایه نامیده می‌شود.

هنگام ایجاد درخواست ارسال پیام پایه، به یاد داشته باشید که کاراکترها به عنوان ۱ بایت (UTF-8) شمارش می‌شوند. اگر پیامی حاوی کاراکترهای خاص مانند ایموجی یا یک مجموعه کاراکتر چند بایتی ارسال می‌کنید، هر کاراکتر به عنوان ۲-۴ کاراکتر UTF-8 یا بیشتر شمارش می‌شود.

برای بررسی طول متن، آن را در کادر وارد کنید:

کلاینت‌های RCS ممکن است پیش‌نمایش لینک‌ها را پیاده‌سازی کنند. اگر یک پیام RCS برای کسب‌وکار که فقط متن دارد شامل URL یک وب‌سایت با برچسب‌های openGraph باشد، کلاینت می‌تواند پیش‌نمایشی (تصویر، عنوان و غیره) ایجاد کند و تجربه غنی‌تری را ارائه دهد. برای مثال، به یک پیام ساده با پیش‌نمایش URL مراجعه کنید.

توجه داشته باشید که کلاینت RCS ممکن است به کاربر اجازه دهد پیش‌نمایش لینک‌ها را غیرفعال کند.

رمزهای عبور یکبار مصرف برای تأیید کاربر

شما می‌توانید از RCS for Business برای ارسال رمزهای عبور یکبار مصرف (OTP) جهت تأیید خودکار کاربر با استفاده از رابط برنامه‌نویسی کاربردی بازیابی پیامک (SMS Retriever API) استفاده کنید. هیچ رابط برنامه‌نویسی کاربردی (API) اختصاصی برای خواندن رمزهای عبور یکبار مصرف که از طریق RCS for Business ارسال می‌شوند، وجود ندارد.

نحوه کار برای اندروید

برای برنامه‌های اندروید که در API مربوط به SMS Retriever ثبت شده‌اند، API به دنبال یک پیام RCS برای کسب‌وکار با فرمت صحیح می‌گردد. این پیام باید شامل OTP و یک هش منحصر به فرد باشد که برنامه شما را شناسایی می‌کند.

وقتی یک پیام RCS برای کسب‌وکار با فرمت صحیح دریافت می‌شود، رابط برنامه‌نویسی کاربردی (API) بازیابی پیامک (SMS Retriever API) آن را درست مانند یک پیام OTP پیامکی پردازش می‌کند. پس از تطبیق هش با برنامه شما، OTP استخراج شده و برای تأیید خودکار کاربر به برنامه شما ارسال می‌شود.

  • نمونه پیامک RCS برای کسب‌وکارها جهت تأیید کاربر: Your code is <OTP><app hash>.
  • مثال: Your code is 123456 M8tue43FGT.

برای کسب اطلاعات بیشتر در مورد SMS Retriever و API های مرتبط، به مستندات SMS Retriever مراجعه کنید. برای جزئیات بیشتر در مورد تأیید خودکار کاربر در برنامه‌هایی که با SMS Retriever API ثبت شده‌اند، به این نمودار جریان مراجعه کنید.

نحوه کار برای iOS

برای iOS، سیستم مدیریت OTP داخلی سیستم، به طور خودکار OTP های RCS برای کسب و کار را برای پر کردن خودکار، درست مانند OTP های پیامکی، شناسایی و پیشنهاد می‌دهد. برای خواندن OTP توسط برنامه iOS، نیازی به ادغام API خاصی نیست.

فایل‌های رسانه‌ای و PDF

وقتی پیامی حاوی تصویر، ویدیو، صدا یا فایل PDF ارسال می‌کنید، نماینده شما باید یک URL قابل دسترس برای عموم برای محتوا ارائه دهد یا مستقیماً فایل را آپلود کند.

حداکثر حجم فایلی که می‌توان ارسال کرد ۱۰۰ مگابایت است و مجموع حجم تمام فایل‌های رسانه‌ای و PDF پیوست‌شده در یک پیام نباید از ۱۰۰ مگابایت بیشتر شود.

مشخصات تصویر بندانگشتی

برای فایل‌های رسانه‌ای، می‌توانید یک تصویر کوچک (thumbnail image) نیز مشخص کنید که به کاربران اجازه می‌دهد قبل از کلیک روی محتوا، پیش‌نمایشی از آن را مشاهده کنند. برای فایل‌های صوتی، ویجت صوتی پیش‌فرض به عنوان یک نگهدارنده (placeholder) استفاده می‌شود.

  • حداکثر اندازه فایل تصویر بندانگشتی ۱۰۰ کیلوبایت است. برای تجربه کاربری مطلوب، توصیه می‌کنیم ۵۰ کیلوبایت یا کمتر باشد.
  • نسبت ابعاد تصویر کوچک باید با نسبت فایل اصلی مطابقت داشته باشد.

مدیریت ذخیره‌سازی و URL

پلتفرم RCS for Business فایل‌ها را به مدت ۶۰ روز در حافظه پنهان (cache) ذخیره می‌کند و API یک شناسه فایل برمی‌گرداند که نماینده شما می‌تواند آن را در پیام‌های ارسالی به کاربران قرار دهد. پس از ۶۰ روز، RCS for Business فایل‌ها را از حافظه پنهان حذف می‌کند.

هنگام مشخص کردن فایل‌ها بر اساس URL، بهتر است مقدار contentMessage.forceRefresh را روی false تنظیم کنید. تنظیم contentMessage.forceRefresh روی true ، RCS for Business را مجبور می‌کند محتوای جدید را از 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
    }
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

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");
این کد گزیده‌ای از یک عامل نمونه RBM است.

از طرف دیگر، می‌توانید قبل از ارسال فایل رسانه‌ای در یک پیام با استفاده از 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 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"
    }
  }
}'

انواع رسانه‌های پشتیبانی‌شده

RCS برای کسب و کار از انواع رسانه‌های زیر پشتیبانی می‌کند. برای تصاویر کوچک، فقط تصویر/jpeg، تصویر/jpg، تصویر/gif و تصویر/png پشتیبانی می‌شوند.

نوع رسانه نوع سند پسوند با کارت‌های غنی کار می‌کند
برنامه/ogg صدای OGG .ogx خیر
برنامه/pdf پی دی اف پی دی اف بله (فقط برای پیام‌های گوگل در هند)
صدا/آک صدای AAC .aac خیر
صوتی/mp3 فایل صوتی MP3 .mp3 خیر
صوتی/mpeg صدای MPEG .mpeg خیر
صدا/mpg صدای MPG .mp3 خیر
صوتی/mp4 صوتی MP4 .mp4 خیر
صوتی/mp4-latm صوتی MP4-latm .mp4 خیر
صوتی/3gpp صدای 3GPP .3gp خیر
تصویر/jpeg JPEG ‎.jpeg، .jpg بله
تصویر/گیف گیف .gif بله
تصویر/png پی ان جی .png بله
ویدئو/h263 ویدئو H263 .h263 بله
ویدئو/m4v ویدیوی M4V .m4v بله
ویدئو/mp4 ویدئو MP4 .mp4 بله
ویدئو/mpeg4 ویدئوی MPEG-4 ‎.mp4، ‎.m4p بله
ویدئو/mpeg ویدئوی MPEG .mpeg بله
ویدیو/وبم ویدیوی وب‌ام .وبم بله

پیشنهادات

نماینده شما پیشنهادات (پاسخ‌های پیشنهادی و اقدامات پیشنهادی) را در لیست‌های تراشه‌های پیشنهادی (حداکثر ۱۱ پیشنهاد) یا در کارت‌های غنی (حداکثر چهار پیشنهاد) ارسال می‌کند.

هر پیشنهاد حداکثر ۲۵ کاراکتر دارد.

پاسخ‌های پیشنهادی

پاسخ‌های پیشنهادی با ارائه پاسخ‌هایی که نماینده شما می‌داند چگونه به آنها واکنش نشان دهد، کاربران را در مکالمات راهنمایی می‌کنند.

وقتی کاربری روی یک پاسخ پیشنهادی ضربه می‌زند، عامل شما رویدادی را دریافت می‌کند که حاوی متن پاسخ و داده‌های postback است . حداکثر ظرفیت این payload، 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"
        }
      }
    ]
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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 است.

سی شارپ

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 باز کنند یا یک رویداد در تقویم ایجاد کنند.

برای هر اقدام پیشنهادی، می‌توانید به صورت اختیاری یک URL جایگزین (حداکثر ۲۰۴۸ کاراکتر) ارائه دهید. اگر دستگاه کاربر از اقدام پیشنهادی پشتیبانی نکند، این URL در یک پنجره مرورگر جدید باز می‌شود.

وقتی کاربری روی یک اقدام پیشنهادی ضربه می‌زند، عامل شما رویدادی را دریافت می‌کند که حاوی داده‌های postback آن اقدام است .

برای گزینه‌های قالب‌بندی و مقدار، به SuggestedAction مراجعه کنید.

شماره گیری کنید

اکشن شماره‌گیری (Dial) کاربر را به شماره‌گیری شماره تلفنی که توسط اپراتور شما مشخص شده است، راهنمایی می‌کند. شماره تلفن‌ها فقط می‌توانند شامل ارقام ( 0-9 )، علامت جمع ( + )، ستاره ( * ) و علامت شماره ( # ) باشند. فرمت بین‌المللی E.164 (برای مثال، +14155555555 ) پشتیبانی می‌شود اما الزامی نیست. یعنی هم +14155555555 و هم 1011 ورودی‌های معتبری هستند.

مثال

کد زیر یک عمل شماره گیری (dial action) ارسال می‌کند. برای قالب بندی و گزینه‌های مقدار، به 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"
          }
        }
      }
    ]
  }
}'

نود جی اس

// 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 است.

جاوا

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 است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

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 است.

مشاهده یک مکان

اکشن View location یک مکان را در برنامه نقشه پیش‌فرض کاربر نمایش می‌دهد. می‌توانید مکان را یا با طول و عرض جغرافیایی یا با یک پرس‌وجو بر اساس مکان فعلی کاربر مشخص کنید. همچنین می‌توانید یک برچسب سفارشی برای پینی که در برنامه نقشه نمایش داده می‌شود، تنظیم کنید.

مثال

کد زیر یک اکشن موقعیت مکانی view ارسال می‌کند. برای قالب‌بندی و گزینه‌های مقدار، به 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"
          }
        }
      }
    ]
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

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
);
این کد گزیده‌ای از یک عامل نمونه RBM است.

اشتراک گذاری مکان

اقدام اشتراک‌گذاری موقعیت مکانی به کاربر اجازه می‌دهد تا مکانی را با نماینده شما به اشتراک بگذارد. کاربر می‌تواند یا مکان فعلی خود یا مکانی را که به صورت دستی از برنامه Maps انتخاب کرده است، به اشتراک بگذارد.

مثال

کد زیر یک اکشن اشتراک‌گذاری موقعیت مکانی ارسال می‌کند. برای قالب‌بندی و گزینه‌های مقداردهی، به 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": {}
        }
      }
    ]
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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 است.

سی شارپ

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
);
این کد گزیده‌ای از یک عامل نمونه RBM است.

باز کردن یک URL

عمل باز کردن URL به شما امکان می‌دهد کاربران را به صفحه وبی که توسط نماینده شما مشخص شده است هدایت کنید. به طور پیش‌فرض، صفحه وب در مرورگر کاربر باز می‌شود. همچنین می‌توانید صفحه وب را طوری تنظیم کنید که در یک نمای وب باز شود. برای جزئیات بیشتر به باز کردن URL با نمای وب مراجعه کنید.

فقط در پیام‌های گوگل

نمایش URL اصلی : برای بهبود شفافیت در پیام‌رسانی A2P، Google Messages آدرس URL اصلی را در اقدامات پیشنهادی «باز کردن یک URL» نمایش می‌دهد. این تغییر بر اقدامات پیشنهادی در کارت‌های غنی استاندارد و چرخ‌وفلک‌های کارت غنی تأثیر می‌گذارد.

یک کارت غنی که پیشنهاد «مشاهده وب‌سایت» را به همراه URL نمایش داده شده در زیر آن نشان می‌دهد.
URL قابل مشاهده در زیر صفحه

نمایش آیکون برنامه برای لینک‌های وب : اگر کاربر یک برنامه پیش‌فرض برای صفحه وب پیکربندی کرده باشد، آن برنامه به جای مرورگر یا نمای وب باز می‌شود و دکمه پیشنهاد، آیکون برنامه را نمایش می‌دهد. برای اینکه آیکون برنامه در پیام‌های گوگل ظاهر شود، باید URL کامل و مستقیم را ارائه دهید. اگر از URL کوتاه‌شده استفاده می‌کنید، آیکون پیش‌فرض Open 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"
          }
        }
      }
    ]
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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 است.

پایتون

# 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 است.

سی شارپ

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 با وب ویو

عمل «باز کردن URL با نمای وب» صفحه وب مشخص شده را درون برنامه پیام‌رسان با موتور رندر مرورگر پیش‌فرض شما بارگذاری می‌کند. این به کاربر اجازه می‌دهد بدون ترک مکالمه RCS for Business با صفحه وب تعامل داشته باشد. اگر دستگاه کاربر از نمای وب پشتیبانی نکند، صفحه وب در مرورگر کاربر باز می‌شود. برای فعال کردن نمای وب، به OpenURLApplication مراجعه کنید.

وب‌ویوها سه حالت نمایش دارند. برای قالب‌بندی و گزینه‌های مقداردهی، به WebviewViewMode مراجعه کنید.

  • کامل: صفحه وب تمام صفحه را اشغال می‌کند
  • نصف: صفحه وب نیمی از صفحه نمایش را اشغال می‌کند
  • بلند: صفحه وب سه چهارم صفحه نمایش را اشغال می‌کند.
مثال

کد زیر یک Open URL با اکشن webview ارسال می‌کند. برای قالب‌بندی و گزینه‌های مقداردهی، به 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;
    }

ایجاد رویداد تقویم

اکشن «ایجاد رویداد تقویم» برنامه تقویم کاربر را باز می‌کند و شروع به ایجاد یک رویداد جدید با اطلاعات مشخص شده می‌کند.

عنوان رویداد تقویم الزامی است. حداکثر ۱۰۰ کاراکتر دارد. شرح رویداد تقویم اختیاری است و حداکثر ۵۰۰ کاراکتر دارد.

مثال

کد زیر یک اکشن رویداد ایجاد تقویم ارسال می‌کند. برای گزینه‌های قالب‌بندی و مقداردهی، به 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"
          }
        }
      }
    ]
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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 است.

پایتون

# 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 است.

سی شارپ

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
);
این کد گزیده‌ای از یک عامل نمونه RBM است.

لیست تراشه‌های پیشنهادی

نماینده شما لیست‌های پیشنهادی چیپ‌ها را به همراه پیام‌هایی برای راهنمایی اقدامات بعدی کاربران ارسال می‌کند. لیست چیپ‌ها فقط زمانی نمایش داده می‌شود که پیام مرتبط در انتهای مکالمه باشد. هر پیام بعدی در مکالمه (از طرف کاربر یا نماینده شما) لیست چیپ‌ها را بازنویسی می‌کند.

تراشه‌های موجود در لیست ، پاسخ‌های پیشنهادی و اقدامات پیشنهادی هستند.

لیست تراشه‌ها حداکثر شامل ۱۱ تراشه پیشنهادی است و هر برچسب تراشه می‌تواند حداکثر ۲۵ کاراکتر داشته باشد.

برای گزینه‌های قالب‌بندی و مقدار، به AgentContentMessage مراجعه کنید.

کارت‌های غنی

کارت‌های غنی، رسانه، متن و پیشنهادات تعاملی را در یک پیام واحد ترکیب می‌کنند. آن‌ها برای ارائه اطلاعات مرتبط (به عنوان مثال، یک محصول با تصویر، نام و قیمت آن) و راهنمایی کاربران با گام بعدی واضح مانند پیشنهاد «مشاهده جزئیات» ایده‌آل هستند.

یک کارت غنی می‌تواند شامل موارد زیر باشد:

هر یک از این فیلدها اختیاری است، اما حداقل یکی از فیلدهای ۱ تا ۳ باید در کارت غنی (rich card) گنجانده شود.

چندین کارت را می‌توان با هم در یک چرخ فلک با پیمایش افقی ارسال کرد.

توجه داشته باشید که کل حجم داده برای یک کارت غنی ۲۵۰ کیلوبایت است.

برای جزئیات فنی کامل، به مستندات Rich cards مراجعه کنید.

ارتفاع کارت

کارت‌های غنی (ریچ کاردها) به صورت عمودی گسترش می‌یابند تا با محتوای خود متناسب شوند. حداقل ارتفاع آنها 112 DP و حداکثر ارتفاع آنها 344 DP است. اگر محتوای کارت به اندازه کافی بزرگ نباشد تا حداقل ارتفاع کارت را پر کند، کارت گسترش می‌یابد و ارتفاع اضافی را با فضای خالی پر می‌کند.

رسانه‌ها در کارت‌های غنی باید با یکی از سه ارتفاع زیر مطابقت داشته باشند:

  • کوتاه: ۱۱۲ دی‌پی
  • متوسط: ۱۶۸ DP
  • قد بلند: ۲۶۴ DP

اگر رسانه با توجه به ارتفاع انتخاب شده، ابعاد درون کارت را نداشته باشد، پیش‌نمایش رسانه با بزرگنمایی و برش رسانه انتخاب می‌شود.

مثال

کد زیر یک کارت غنی (rich card) به همراه یک تصویر و پاسخ‌های پیشنهادی ارسال می‌کند. برای قالب‌بندی و گزینه‌های مقداردهی، به 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"
              }
            }
          ]
        }
      }
    }
  }
}'

نود جی اس

// 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 است.

جاوا

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();
}
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

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");
این کد گزیده‌ای از یک عامل نمونه RBM است.

چرخ فلک کارت‌های غنی

چرخ و فلک‌ها چندین کارت غنی را کنار هم قرار می‌دهند و به کاربران اجازه می‌دهند موارد را با هم مقایسه کنند و به هر کدام به صورت جداگانه واکنش نشان دهند.

چرخ و فلک‌ها می‌توانند حداقل دو و حداکثر ده کارت غنی داشته باشند. کارت‌های غنی درون چرخ و فلک‌ها باید با الزامات عمومی کارت‌های غنی برای محتوا و ارتفاع، همانطور که در مستندات کارت‌های غنی توضیح داده شده است، مطابقت داشته باشند. برای اطلاعات بیشتر در مورد طرح و مشخصات چرخ و فلک، به مستندات چرخ و فلک مراجعه کنید.

مثال

کد زیر یک چرخ فلک rich card ارسال می‌کند. برای قالب‌بندی و گزینه‌های مقدار، به 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
              }
            }
          }
        ]
      }
    }
  }
}'

نود جی اس

// 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);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

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();
        }
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# 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')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

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);
این کد گزیده‌ای از یک عامل نمونه RBM است.