Kotlin पर SMS भेजना: sms-client-kotlin लाइब्रेरी का API
आधुनिक मोबाइल ऐप्स और सर्वर समाधानों को अक्सर सूचनाएं, पुष्टिकरण या मार्केटिंग संदेश भेजने के लिए SMS गेटवे के साथ एकीकरण की आवश्यकता होती है। Kotlin भाषा के लिए एक सुविधाजनक लाइब्रेरी sms-client-kotlin मौजूद है, जो लोकप्रिय SMS प्रदाताओं के साथ काम करने के लिए एक सरल और टाइप-सेफ API प्रदान करती है। इस लेख में, हम इसकी संरचना, विधियों और उपयोग के उदाहरणों पर विस्तार से चर्चा करेंगे।
sms-client-kotlin क्या है?
लाइब्रेरी sms-client-kotlin एक हल्का HTTP क्लाइंट है, जो कोरूटीन का उपयोग करके शुद्ध Kotlin में लिखा गया है। यह विभिन्न SMS प्रदाताओं (जैसे Twilio, Vonage, SMS-सेंटर) के REST API के साथ काम को अमूर्त करता है और संदेश भेजने के लिए एक समान इंटरफ़ेस प्रदान करता है। मुख्य लाभ:
- एसिंक्रोनस — सभी अनुरोध 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 के मुख्य तरीके
लाइब्रेरी SMS भेजने और प्रबंधित करने के लिए कई महत्वपूर्ण तरीके प्रदान करती है:
1. एकल संदेश भेजना
विधि sendSms प्राप्तकर्ता का नंबर और संदेश का टेक्स्ट लेती है। यह भेजने की जानकारी के साथ एक SmsResult ऑब्जेक्ट लौटाती है।
suspend fun sendSingleMessage(client: SmsClient) { val result = client.sendSms( to = "+79876543210", message = "नमस्ते! यह Kotlin से एक परीक्षण संदेश है।" )
when (result) { is SmsResult.Success -> println("भेजा गया! ID: ${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 के मानक तंत्र का उपयोग करती है। सभी नेटवर्क त्रुटियां