C# (.NET) पर SMS भेजना: API के साथ एकीकरण के लिए पूर्ण मार्गदर्शिका
आधुनिक दुनिया में, SMS सूचनाएँ उपयोगकर्ता से संपर्क करने के सबसे विश्वसनीय तरीकों में से एक हैं। C# (.NET) इकोसिस्टम में, संदेश भेजने के कई तरीके हैं - सीधे HTTP अनुरोधों से लेकर विशेष NuGet पैकेजों के उपयोग तक। इस लेख में, हम HttpClient पर शुद्ध कार्यान्वयन के उदाहरण के साथ लोकप्रिय सेवाओं (Twilio, sms.ru, Smsc) के माध्यम से SMS भेजने को कॉन्फ़िगर करने का तरीका समझेंगे, साथ ही रूसी प्रदाताओं के साथ काम करने के लिए एक तैयार लाइब्रेरी पर भी विचार करेंगे।
दृष्टिकोण का चयन: लाइब्रेरी या शुद्ध HTTP?
C# में SMS भेजने के दो मुख्य तरीके हैं:
- आधिकारिक SDK का उपयोग (उदाहरण के लिए, .NET के लिए Twilio) - टाइप किया गया इंटरफ़ेस, अंतर्निहित त्रुटि प्रबंधन और दस्तावेज़ीकरण प्रदान करता है।
- HttpClient के माध्यम से REST API के साथ सीधा काम - अनुरोध पर पूर्ण नियंत्रण, न्यूनतम निर्भरताएँ, किसी भी प्रदाता के साथ काम करने की क्षमता।
दूसरा विकल्प शैक्षिक उद्देश्यों और उन परियोजनाओं के लिए बेहतर है जहाँ लचीलेपन की आवश्यकता होती है। आइए इस पर विस्तार से विचार करें।
HTTP API के माध्यम से SMS भेजने का मूल कार्यान्वयन
हम एक SmsService क्लास बनाएंगे जो sms.ru (या समान प्रारूप वाली किसी अन्य सेवा) के API के माध्यम से संदेश भेजेगा।
using System;using System.Net.Http;using System.Threading.Tasks;
public class SmsService{ private readonly HttpClient _httpClient; private readonly string _apiKey;
public SmsService(string apiKey) { _httpClient = new HttpClient(); _apiKey = apiKey; }
public async Task<string> SendSmsAsync(string phone, string message) { var url = $"https://sms.ru/sms/send?api_id={_apiKey}&to={phone}&msg={Uri.EscapeDataString(message)}&json=1"; var response = await _httpClient.GetAsync(url); return await response.Content.ReadAsStringAsync(); }}उपयोग:
var sms = new SmsService("आपकी_API_कुंजी");string result = await sms.SendSmsAsync("+79123456789", "नमस्ते! यह एक परीक्षण संदेश है।");Console.WriteLine(result);अनुकूलन: एसिंक्रोनस और त्रुटि प्रबंधन
वास्तविक परियोजना में, नंबर सत्यापन, विफलता पर पुनः प्रयास और लॉगिंग जोड़ना आवश्यक है। बेहतर संस्करण:
public async Task<SmsResult> SendSmsAsync(string phone, string message){ try { if (string.IsNullOrWhiteSpace(phone) || phone.Length < 10) return new SmsResult { Success = false, Error = "गलत नंबर प्रारूप" };
var url = $"https://sms.ru/sms/send?api_id={_apiKey}&to={phone}&msg={Uri.EscapeDataString(message)}&json=1"; var response = await _httpClient.GetAsync(url); var json = await response.Content.ReadAsStringAsync();
// JSON पार्सिंग (System.Text.Json का उपयोग किया जा सकता है) var result = JsonSerializer.Deserialize<SmsApiResponse>(json); return new SmsResult { Success = result?.Status == "OK", Response = json }; } catch (HttpRequestException ex) { return new SmsResult { Success = false, Error = $"नेटवर्क त्रुटि: {ex.Message}" }; }}प्रतिक्रिया पार्स करने के लिए एक सरल मॉडल बनाएँ:
public class SmsApiResponse{ public string Status { get; set; } public int Balance { get; set; }}तैयार लाइब्रेरी: .NET के लिए Twilio
यदि आपको प्रोडक्शन-रेडी समाधान चाहिए, तो Twilio SDK (NuGet: Twilio) का उपयोग करें। उदाहरण:
using Twilio;using Twilio.Rest.Api.V2010.Account;
TwilioClient.Init("ACCOUNT_SID", "AUTH_TOKEN");
var message = MessageResource.Create( body: "C# से नमस्ते!", from: new PhoneNumber("+1234567890"), to: new PhoneNumber("+79123456789"));
Console.WriteL