إرسال SMS بلغة Java: كيفية استخدام مكتبات API لإرسال الرسائل
إرسال رسائل SMS هو وظيفة مطلوبة في تطبيقات الويب الحديثة، وأنظمة المصادقة (2FA)، والإشعارات، والحملات التسويقية. في Java، تُستخدم مكتبات متخصصة للتفاعل مع APIs السحابية لمزودي الخدمة. في هذه المقالة، سنستعرض أشهر مكتبتين: Twilio و Vonage (سابقًا Nexmo). ستتعلم كيفية إضافتهما، وإرسال أول SMS، ومعالجة الأخطاء المحتملة.
1. لماذا نحتاج إلى مكتبة منفصلة لـ SMS؟
العمل مع SMS مباشرة عبر طلبات HTTP ممكن ولكنه غير مريح. توفر المكتبات:
- فئات جاهزة لإنشاء وإرسال الرسائل.
- إدارة الأخطاء وإعادة المحاولة عند فشل الشبكة.
- عمل آمن مع مفاتيح API والرموز المميزة.
- دعم للوظائف الإضافية (حالات التسليم، استقبال SMS الواردة).
2. مكتبة Twilio لـ Java
Twilio هي إحدى الشركات الرائدة في السوق. حزمة SDK الخاصة بها (Software Development Kit) سهلة التعلم ولها وثائق ممتازة.
2.1 إضافة التبعية (Maven)
أضف الكتلة التالية إلى pom.xml:
<dependency> <groupId>com.twilio.sdk</groupId> <artifactId>twilio</artifactId> <version>9.14.1</version> <!-- تحقق من أحدث إصدار --></dependency>2.2 إرسال SMS عبر Twilio
مثال كود لإرسال رسالة. تأكد من حصولك على Account SID و Auth Token من لوحة تحكم Twilio، بالإضافة إلى رقم هاتف تم شراؤه.
import com.twilio.Twilio;import com.twilio.rest.api.v2010.account.Message;import com.twilio.type.PhoneNumber;
public class SmsSender { // قم بتعيين بيانات الاعتماد الخاصة بك public static final String ACCOUNT_SID = "YOUR_ACCOUNT_SID"; public static final String AUTH_TOKEN = "YOUR_AUTH_TOKEN";
public static void main(String[] args) { Twilio.init(ACCOUNT_SID, AUTH_TOKEN);
Message message = Message.creator( new PhoneNumber("+71234567890"), // رقم المستلم new PhoneNumber("+19876543210"), // رقم Twilio الخاص بك "مرحبًا من Java و Twilio!" ).create();
System.out.println("تم إرسال SMS. SID: " + message.getSid()); }}هام: يجب أن تكون أرقام الهواتف بالتنسيق الدولي (بدءًا بـ +).
3. مكتبة Vonage (Nexmo) لـ Java
Vonage SMS API هو خيار شائع آخر. مكتبته تسمى nexmo-java أو vonage-java-sdk.
3.1 إضافة التبعية (Gradle)
implementation 'com.vonage:client:7.3.0'لـ Maven:
<dependency> <groupId>com.vonage</groupId> <artifactId>client</artifactId> <version>7.3.0</version></dependency>3.2 إرسال SMS عبر Vonage
import com.vonage.client.VonageClient;import com.vonage.client.sms.MessageStatus;import com.vonage.client.sms.SmsSubmissionResponse;import com.vonage.client.sms.messages.TextMessage;
public class VonageSms { public static void main(String[] args) { VonageClient client = VonageClient.builder() .apiKey("YOUR_API_KEY") .apiSecret("YOUR_API_SECRET") .build();
TextMessage message = new TextMessage( "VonageAPI", // المرسل (حتى 11 حرفًا) "+71234567890", // المستلم "رسالة اختبار من Java و Vonage!" );
SmsSubmissionResponse response = clien