إرسال SMS باستخدام Kotlin: مكتبة API sms-client-kotlin

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

إرسال SMS باستخدام Kotlin: مكتبة API sms-client-kotlin



غالبًا ما تتطلب تطبيقات الهاتف المحمول الحديثة والحلول الخادمة التكامل مع بوابات SMS لإرسال الإشعارات أو التأكيدات أو الرسائل التسويقية. بالنسبة للغة Kotlin، توجد مكتبة ملائمة sms-client-kotlin توفر واجهة برمجة تطبيقات بسيطة وآمنة من حيث النوع للعمل مع مزودي خدمات SMS المشهورين. في هذه المقالة، سنقوم بتحليل بنيتها وطرقها وأمثلة استخدامها بالتفصيل.



ما هي sms-client-kotlin؟



مكتبة sms-client-kotlin هي عميل HTTP خفيف الوزن مكتوب بلغة Kotlin النقية باستخدام coroutines. تقوم بتجريد العمل مع REST API لمختلف مزودي SMS (مثل Twilio و Vonage و SMS-Tsentr) وتوفر واجهة موحدة لإرسال الرسائل. المزايا الرئيسية:



  • غير متزامنة — يتم تنفيذ جميع الطلبات عبر coroutines في Kotlin.
  • أمان النوع — كتابة صارمة لمعاملات الطلبات والردود.
  • قابلية التوسع — دعم عدة مزودين من خلال واجهة موحدة SmsSender.
  • إعداد سهل — الحد الأدنى من التبعيات.


التثبيت والإعداد



لإضافة المكتبة إلى مشروعك، استخدم Gradle. أضف التبعية إلى ملف build.gradle.kts:



dependencies {    implementation("com.github.sms-client:sms-client-kotlin:1.2.0")    implementation("io.ktor:ktor-client-core:2.3.0")    implementation("io.ktor:ktor-client-cio:2.3.0") // أو محرك آخر}


بعد مزامنة المشروع، يمكنك إنشاء نسخة من العميل. مثال على التهيئة لمزود Twilio:



import sms.client.SmsClientimport sms.client.provider.twilio.TwilioConfig

fun main() { val config = TwilioConfig( accountSid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", authToken = "your_auth_token_here", fromNumber = "+1234567890" )

val client = SmsClient.create(config)}


الطرق الرئيسية لواجهة API



توفر المكتبة عدة طرق رئيسية لإرسال وإدارة الرسائل النصية القصيرة:



1. إرسال رسالة واحدة



الطريقة sendSms تستقبل رقم المستلم ونص الرسالة. تُرجع كائن SmsResult بمعلومات حول الإرسال.



suspend fun sendSingleMessage(client: SmsClient) {    val result = client.sendSms(        to = "+79876543210",        message = "مرحبًا! هذه رسالة اختبارية من Kotlin."    )

when (result) { is SmsResult.Success -> println("تم الإرسال! المعرف: ${result.messageId}") is SmsResult.Failure -> println("خطأ: ${result.errorMessage}") }}


2. الإرسال الجماعي



لإرسال رسائل جماعية، استخدم الطريقة sendBatch. تستقبل قائمة بالمستلمين ونصًا مشتركًا (أو رسائل فردية).



suspend fun sendBatch(client: SmsClient) {    val recipients = listOf(        BatchRecipient("+79111111111", "خصم 10% على أول طلب!"),        BatchRecipient("+79222222222", "رمز التأكيد الخاص بك: 1234")    )

val batchResult = client.sendBatch(recipients) println("تم الإرسال بنجاح: ${batchResult.successCount}، أخطاء: ${batchResult.failureCount}")}


3. التحقق من حالة التسليم



الطريقة getDeliveryStatus تسمح بالحصول على الحالة الحالية لرسالة تم إرسالها مسبقًا باستخدام معرفها.



suspend fun checkStatus(client: SmsClient, messageId: String) {    val status = client.getDeliveryStatus(messageId)    println("حالة الرسالة $messageId: ${status.status} (${status.description})")}


معالجة الأخطاء والاستثناءات



تستخدم المكتبة الآليات القياسية في Kotlin لمعالجة الأخطاء. جميع الأخطاء الشبكية

توصيات