Rust पर SMS भेजना: RustSMS लाइब्रेरी का अवलोकन
आधुनिक वेब डेवलपमेंट और ऑटोमेशन की दुनिया में, SMS संदेश भेजना एक आवश्यक कार्य बना हुआ है: दो-कारक प्रमाणीकरण से लेकर ऑर्डर स्थिति सूचनाओं तक। यदि आप Rust में लिख रहे हैं और SMS प्रदाताओं के साथ एकीकरण का एक विश्वसनीय तरीका ढूंढ रहे हैं, तो RustSMS लाइब्रेरी वही है जो आपको चाहिए। यह दर्जनों SMS गेटवे (Twilio, Vonage, Clickatell, SMS.ru और अन्य) के साथ काम करने के लिए एक एकीकृत, एसिंक्रोनस और टाइप-सुरक्षित API प्रदान करती है।
इस लेख में, हम RustSMS की प्रमुख विशेषताओं पर चर्चा करेंगे, कोड उदाहरण दिखाएंगे और बताएंगे कि कुछ ही मिनटों में संदेश भेजना कैसे शुरू करें।
RustSMS की मुख्य विशेषताएं
- एकीकृत इंटरफ़ेस — चुने गए प्रदाता के बावजूद, आप विधियों के एक ही सेट का उपयोग करते हैं।
- एसिंक्रोनस — लाइब्रेरी
tokioऔरreqwestपर बनी है, जो मुख्य थ्रेड को ब्लॉक नहीं करती है। - लोकप्रिय गेटवे के लिए समर्थन — Twilio, Vonage (Nexmo), Clickatell, SMS.ru, MessageBird और अन्य।
- टाइप-सुरक्षित कॉन्फ़िगरेशन — सभी पैरामीटर (नंबर, टेक्स्ट, प्रदाता) कंपाइलेशन समय पर जांचे जाते हैं।
- आसान विस्तार — आप किसी भी कस्टम गेटवे के लिए अपना एडॉप्टर लिख सकते हैं।
स्थापना
अपने Cargo.toml में निर्भरता जोड़ें:
[dependencies]rustsms = "0.5"tokio = { version = "1", features = ["full"] }SMS भेजने का मूल उदाहरण
भेजने से पहले, चुने गए प्रदाता के लिए एक कॉन्फ़िगरेशन बनाना आवश्यक है। Twilio के साथ एक उदाहरण देखें:
use rustsms::{SmsClient, providers::twilio::TwilioConfig};use std::error::Error;
#[tokio::main]async fn main() -> Result<(), Box> { // Twilio के लिए कॉन्फ़िगरेशन बनाएं let config = TwilioConfig::new( "YOUR_ACCOUNT_SID", "YOUR_AUTH_TOKEN", "+1234567890", // आपका प्रेषक नंबर );
// क्लाइंट को इनिशियलाइज़ करें let client = SmsClient::new(config);
// संदेश भेजें let response = client .send("+0987654321", "Rust से नमस्ते!") .await?;
println!("SMS भेजा गया! ID: {}", response.message_id); Ok(())} एकाधिक प्रदाताओं के साथ काम करना
RustSMS आपको प्रदाताओं के बीच आसानी से स्विच करने की अनुमति देता है। इसके लिए केवल कॉन्फ़िगरेशन बदलना होता है:
use rustsms::{SmsClient, providers::vonage::VonageConfig};
let config = VonageConfig::new( "YOUR_API_KEY", "YOUR_API_SECRET", "RustSMS",);let client = SmsClient::new(config);त्रुटियों और स्थितियों को संभालना
यदि कुछ गलत होता है तो लाइब्रेरी विस्तृत त्रुटियाँ लौटाती है। आप पैटर्न-मैचिंग का उपयोग करके उन्हें संभाल सकते हैं:
match client.send("+1111111111", "परीक्षण").await { Ok(response) => println!("सफलता: {:?}", response), Err(e) => match e { rustsms::Error::Api { code, message } => { eprintln!("API त्रुटि {}: {}", code, message); } rustsms::Error::Network(e) => { eprintln!("नेटवर्क त्रुटि: {}", e); } _ => eprintln!("अज्ञात त्रुटि"), },}उन्नत सुविधाएँ: टेम्पलेट और कस्टम हेडर
RustSMS टेम्पलेट (उदाहरण के लिए, OTP कोड के लिए) और कस्टम HTTP हेडर का उपयोग करके संदेश भेजने का समर्थन करता है। टेम्पलेट के साथ उदाहरण:
let otp_code = 123456;let message = format!("आपका सत्यापन कोड: {}", otp_code);client .send("+1111111111", &message) .await?;अधिक जटिल परिदृश्यों के लिए (उदाहरण के लिए, अतिरिक्त पैरामीटर के साथ SMS गेटवे के माध्यम से भेजना), आप send_with_opts विधि का उपयोग कर सकते हैं:
use rustsms::options::SendOptions;
let opts = SendOptions::new() .with_callba पुस्तकालय में भी
TypeScript के लिए Elasticsearch क्लाइंट: @elastic/elasticsearch
Swift में ऑब्जेक्ट सीरियलाइज़ेशन: Codable, NSCoding और JSONEncoder
जावास्क्रिप्ट (Node.js) में Excel के साथ कार्य: लाइब्रेरीज़ और कोड उदाहरण
जावास्क्रिप्ट (Node.js) में परीक्षण: फ्रेमवर्क और उपकरण