بررسی قابلیت ها

برای بررسی اینکه آیا دستگاه کاربر دارای قابلیت RCS است و قادر به برقراری ارتباط با یک عامل RBM است، می‌توانید قابلیت‌های دستگاه را درخواست کنید. شناسایی ویژگی‌هایی که یک دستگاه پشتیبانی می‌کند، در صورت وجود، به عامل شما اجازه می‌دهد تا مکالمه را با قابلیت‌های دستگاه تنظیم کند و از ارائه تعاملاتی که تکمیل آنها برای کاربر دشوار یا غیرممکن است، جلوگیری کند.

اگر دستگاه کاربر به هیچ وجه قادر به دریافت پیام‌های RCS نباشد، می‌توانید از طریق سرویس‌های دیگر مانند پیامک/MMS با کاربر ارتباط برقرار کنید.

بررسی قابلیت‌های دستگاه

کد زیر یک بررسی قابلیت ارسال می‌کند و منتظر پاسخ می‌ماند. برای گزینه‌های قالب‌بندی و مقدار، به getCapabilities مراجعه کنید.

حلقه

curl -X GET "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/capabilities?requestId=REQUEST_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`"

نود جی اس

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Send a capability check to the device
rbmApiHelper.checkCapability('+12223334444', function(response) {
   // Print capabilities of the device
   console.log(response);
});
این کد گزیده‌ای از یک عامل نمونه RBM است.

جاوا

import com.google.rbm.RbmApiHelper;


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

// Check the capabilities of the device
boolean capability = rbmApiHelper.getCapability("+12223334444");
این کد گزیده‌ای از یک عامل نمونه RBM است.

پایتون

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Send the tester invite to a device
response = rbm_service.make_cap_request('+12223334444')
این کد گزیده‌ای از یک عامل نمونه RBM است.

سی شارپ

using RCSBusinessMessaging;


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

// Register the device as a tester
Capabilities capabilities = rbmApiHelper.GetCapability("+12223334444");
این کد گزیده‌ای از یک عامل نمونه RBM است.

پاسخ قابلیت

پس از اجرای بررسی قابلیت‌ها، پلتفرم RBM فهرستی با فرمت JSON از ویژگی‌هایی که دستگاه مشخص‌شده پشتیبانی می‌کند را برمی‌گرداند.

{
  "features": [
    "RICHCARD_STANDALONE",
    "RICHCARD_CAROUSEL",
    "ACTION_CREATE_CALENDAR_EVENT",
    "ACTION_DIAL",
    "ACTION_OPEN_URL",
    "ACTION_SHARE_LOCATION",
    "ACTION_VIEW_LOCATION",
    "ACTION_OPEN_URL_IN_WEBVIEW",
    "PDF_IN_RICH_CARDS"
  ]
}

این درخواست یا پاسخی را برمی‌گرداند یا خطایی را نشان می‌دهد.

پاسخ موفقیت‌آمیز تنها در صورتی بازگردانده می‌شود که شماره تلفن (MSISDN) در طول ۳۱ روز گذشته به سرویس RCS متصل شده باشد. این بدان معناست که دستگاه کاربر در این بازه زمانی به سرور RCS ما متصل شده است. دستگاه‌های آنلاین و دارای RCS به طور متوسط ​​هر ۱ تا ۴ ساعت یکبار متصل می‌شوند.

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

اگر سیم‌کارت در دستگاهی قرار گیرد که RCS توسط اپراتور یا سازنده غیرفعال شده باشد، یا سیم‌کارت بلااستفاده بماند، سرویس RCS همچنان تا ۳۱ روز تلاش می‌کند تا پیام‌ها را به دستگاه مرتبط قبلی ارسال کند.

در اینجا به بررسی علل بروز خطای ۴۰۴ می‌پردازیم:

  • کاربر از طریق RBM قابل دسترسی نیست - برای مثال، اگر دستگاه او از RCS پشتیبانی نکند.

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

صف‌بندی آفلاین

پیام‌ها تا ۳۱ روز در صف انتظار قرار می‌گیرند و پس از آنلاین شدن مجدد دستگاه، ارسال می‌شوند. این بدان معناست که حتی اگر دستگاهی برای مدت طولانی (تا ۳۱ روز) آفلاین شود، پیام‌های در صف انتظار پس از اتصال مجدد، همچنان ارسال خواهند شد، البته تا زمانی که MSISDN در ۳۱ روز گذشته به سرویس RCS متصل شده باشد.

بررسی‌های قابلیت انبوه

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

برای هر بررسی قابلیت انبوه، باید ۵۰۰ تا ۱۰۰۰۰ شماره تلفن منحصر به فرد ارائه دهید. برای بررسی شماره‌های بیشتر، چندین بررسی انجام دهید. می‌توانید تا ۶۰۰ تماس در دقیقه برقرار کنید. از اسکریپت بررسی قابلیت انبوه برای استفاده از فایل‌های CSV به عنوان فرمت ورودی استفاده کنید. بررسی‌های انبوه از حافظه پنهان قابلیت‌ها خوانده می‌شوند، که توسط کلاینت‌ها به صورت ارگانیک با استفاده از RCS به‌روزرسانی می‌شود. اپراتورها مستقیماً قابلیت‌های هر دستگاه را درخواست نمی‌کنند. به همین دلیل، نتایج ممکن است به‌روز نباشند.

بررسی‌های قابلیت انبوه، فهرستی از شماره‌هایی را که نماینده شما می‌تواند در اپراتورهایی که در آنها راه‌اندازی شده است، به آنها دسترسی داشته باشد، و همچنین تخمین‌هایی از تعداد کل کاربران قابل دسترسی در تمام اپراتورها را ارائه می‌دهد. به پاسخ بررسی قابلیت انبوه مراجعه کنید.

تخمین کل کاربران قابل دسترسی

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

چگونه کار می‌کند؟

وقتی نماینده شما بررسی قابلیت انبوه را انجام می‌دهد، RBM به طور تصادفی حدود ۷۵٪ از آن اعداد را برای بررسی همه حامل‌ها نمونه‌برداری می‌کند (که در totalRandomSampleUserCount گزارش شده است). RBM همچنین تعداد اعداد قابل دسترسی RBM را از نمونه تصادفی، صرف نظر از وضعیت راه‌اندازی حامل ( reachableRandomSampleUserCount ) برمی‌گرداند. با تقسیم reachableRandomSampleUserCount بر totalRandomSampleUserCount ، می‌توانید درصد اعدادی را که نماینده شما می‌تواند در صورت راه‌اندازی روی همه حامل‌ها به آنها دسترسی پیدا کند، تخمین بزنید.

برای مثال، اگر در بررسی قابلیت انبوه، ۵۰۰۰ شماره تلفن مشخص کنید و RBM به طور تصادفی حدود ۷۵٪ از شماره‌های مشخص شده را نمونه‌برداری کند، totalRandomSampleUserCount ممکن است 3750 باشد. اگر reachableRandomSampleUserCount برابر با 3000 باشد، ۸۰٪ از شماره‌های نمونه‌برداری شده قابل دسترسی بوده‌اند.

نمونه‌گیری تصادفی را در نظر بگیرید

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

ارسال بررسی قابلیت انبوه

کد زیر یک بررسی قابلیت دسته‌ای ارسال می‌کند و منتظر پاسخ می‌ماند. برای گزینه‌های قالب‌بندی و مقدار، به users.batchGet مراجعه کنید.

شماره تلفن‌ها باید به فرمت E.164 باشند (برای مثال، "+12223334444")، و لیست باید شامل ۵۰۰ تا ۱۰۰۰۰ شماره تلفن منحصر به فرد باشد.

حلقه

curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/users:batchGet?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 '{
  "users": [
    "PHONE_NUMBER",
  ]
}'

نود جی اس

// Reference to RBM API helper
const rbmApiHelper = require('@google/rcsbusinessmessaging');

// Specify phone numbers
let phoneNumbers = ['+12223334444', '+12223334444'];

// Perform a bulk capability check
rbmApiHelper.getUsers(phone_numbers, function(response) {
   // Print the bulk capability check response
   console.log(response);
});
این کد از عامل نمونه RBM استفاده می‌کند.

جاوا

import com.google.rbm.RbmApiHelper;


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

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.getUsers(Arrays.asList("+12223334444", "+12223334444"));
این کد از عامل نمونه RBM استفاده می‌کند.

پایتون

# Reference to RBM Python client helper
from rcs_business_messaging import rbm_service

# Perform a bulk capability check
response = rbm_service.make_batch_cap_request(['+12223334444', '+12223334444'])
این کد از عامل نمونه RBM استفاده می‌کند.

سی شارپ

using RCSBusinessMessaging;


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

// Perform a bulk capability check
BatchGetUsersResponse batchGetUsersResponse = rbmApiHelper.GetUsers(new List({"+12223334444", "+12223334444"}));
این کد از عامل نمونه RBM استفاده می‌کند.

پاسخ بررسی قابلیت انبوه

پس از اجرای بررسی قابلیت انبوه، RBM یک پاسخ با فرمت JSON برمی‌گرداند.

{
  "reachableUsers": [
    "PHONE_NUMBER"
  ],
  "totalRandomSampleUserCount": "COUNT_OF_SAMPLE",
  "reachableRandomSampleUserCount": "REACHABLE_FROM_SAMPLE"
}
میدان توضیحات
reachableUsers فهرستی از کاربران قابل دسترسی در اپراتورهای راه‌اندازی‌شده‌ی نماینده.
totalRandomSampleUserCount تعداد یک نمونه تصادفی از اعداد مشخص شده. معمولاً حدود ۷۵٪ از اعداد مشخص شده.
reachableRandomSampleUserCount تعداد اعداد از نمونه تصادفی که در تمام حامل‌ها، صرف نظر از اینکه عامل روی کدام حامل‌ها راه‌اندازی شده است، قابل دسترسی RBM هستند. این تعداد برای ارائه یک تخمین تقریبی از تعداد کل کاربران قابل دسترسی در تمام حامل‌ها استفاده می‌شود.
reachableUsersMap فقط خروجی. نگاشت شناسه اپراتور به لیستی از کاربران قابل دسترسی در آن اپراتور. این فیلد فقط برای شماره تلفن‌های ایالات متحده پر می‌شود.

ابزار: اسکریپت بررسی قابلیت انبوه

اسکریپت بررسی قابلیت باک ( برای دانلود وارد شوید )بررسی‌های قابلیت انبوه را با استفاده از فایل‌های CSV به عنوان فرمت‌های ورودی و خروجی انجام می‌دهد. این اسکریپت فایل CSV مربوط به MSISDNها را تجزیه می‌کند و از RBM SDK برای بررسی قابلیت‌های هر دستگاه فهرست‌شده استفاده می‌کند.

یک ماشین مجازی با ۲ پردازنده و ۴ گیگابایت رم که اسکریپت را با ۵۰۰ رشته اجرا می‌کند، می‌تواند تقریباً به ۱K QPS برسد، اما QPS کلی به ماشین مورد استفاده، کشور دستگاه‌ها، پیکربندی منطقه‌ای عامل شما و نقطه پایانی API مورد استفاده بستگی دارد.

پیش‌نیازها

قبل از استفاده از ابزار برای انجام بررسی قابلیت انبوه، موارد زیر را تهیه کنید:

  • مسیر فایل CSV با MSISDN ها برای انجام بررسی‌های قابلیت روی
  • مسیر کلید حساب سرویس نماینده شما در دستگاه توسعه شما

علاوه بر این، به نرم‌افزارهای زیر نیز نیاز دارید که روی دستگاه توسعه شما نصب شده باشند:

تنظیم کنید

برای تنظیم دستگاه توسعه خود برای بررسی قابلیت انبوه، موارد زیر را انجام دهید:

  1. دانلود و استخراج کنیداسکریپت بررسی قابلیت انبوه ( برای دانلود وارد شوید ).
  2. مراحل موجود در README را دنبال کنید.

بررسی قابلیت انبوه را اجرا کنید

برای اجرای چک دسته جمعی، مراحل زیر را دنبال کنید:

  1. در ترمینال، به دایرکتوری ریشه اسکریپت بروید.
  2. دستورات زیر را اجرا کنید:

    export MAVEN_OPTS="-Xms1024m -Xmx3000m"
    mvn compile && mvn exec:java -Dexec.args="AGENT_ID INPUT_FILE OUTPUT_FILE NUM_OF_THREADS START_INDEX END_INDEX"

    متغیرها را با مقادیری که شناسایی کرده‌اید جایگزین کنید.

    جایگزین کردن با مثال
    AGENT_ID شناسه نماینده RCS برای کسب و کار. welcome-bot
    INPUT_FILE مسیر فایل CSV ورودی. input.csv
    OUTPUT_FILE مسیر فایل خروجی CSV. output.csv
    NUM_OF_THREADS تعداد رشته‌هایی که باید به بررسی قابلیت‌ها اختصاص داده شوند. 500
    START_INDEX اختیاری. مقداری در فایل CSV که قرار است بررسی‌ها روی آن شروع شود. 5
    END_INDEX اختیاری. مقداری در فایل CSV که بررسی‌ها پس از آن پایان می‌یابد. 500
  3. وقتی اسکریپت کامل شد، فایل CSV خروجی را باز کنید تا نتایج را مشاهده کنید.