Swift (iOS/macOS) पर SMS भेजना: लाइब्रेरी और API का अवलोकन
आधुनिक मोबाइल डेवलपमेंट में, SMS संदेश भेजने की क्षमता एक आवश्यक सुविधा बनी हुई है: फ़ोन नंबर सत्यापन से लेकर सामूहिक सूचनाओं तक। Apple (iOS/macOS) इकोसिस्टम में Swift भाषा पर कई दृष्टिकोण उपलब्ध हैं - अंतर्निहित MessageUI से लेकर क्लाउड SMS प्रदाताओं के साथ एकीकरण तक। इस लेख में, हम मुख्य लाइब्रेरी और API, उनके लाभ और सीमाएँ, साथ ही व्यावहारिक कोड उदाहरण देखेंगे।
1. अंतर्निहित MessageUI लाइब्रेरी
सबसे आसान तरीका MessageUI फ्रेमवर्क का उपयोग करना है, जो iOS और macOS पर उपलब्ध है। यह किसी तृतीय-पक्ष SDK को शामिल किए बिना (MFMessageComposeViewController के माध्यम से) SMS भेजने के लिए मानक इंटरफ़ेस को कॉल करने की अनुमति देता है।
क्षमताएँ:
- सिस्टम ऐप "संदेश" के माध्यम से SMS भेजना।
- अटैचमेंट (चित्र, वीडियो, संपर्क) के लिए समर्थन।
- प्रदाता के पास पंजीकरण की आवश्यकता नहीं है।
सीमाएँ:
- केवल भौतिक उपकरणों पर काम करता है (सिम्युलेटर पर नहीं)।
- उपयोगकर्ता इंटरफ़ेस देखता है और भेजने की पुष्टि करता है।
- स्वचालित (सर्वर-साइड) भेजने के लिए उपयुक्त नहीं है।
Swift (iOS) पर कोड उदाहरण:
import MessageUIimport UIKit
class ViewController: UIViewController, MFMessageComposeViewControllerDelegate {
@IBAction func sendSMSTapped(_ sender: UIButton) { guard MFMessageComposeViewController.canSendText() else { print("डिवाइस SMS भेजने का समर्थन नहीं करता") return } let messageVC = MFMessageComposeViewController() messageVC.body = "नमस्ते! यह Swift से एक परीक्षण SMS है।" messageVC.recipients = ["+919123456789"] messageVC.messageComposeDelegate = self present(messageVC, animated: true, completion: nil) }
func messageComposeViewController(_ controller: MFMessageComposeViewController, didFinishWith result: MessageComposeResult) { switch result { case .sent: print("SMS भेजा गया") case .cancelled: print("उपयोगकर्ता द्वारा रद्द किया गया") case .failed: print("भेजने में त्रुटि") @unknown default: break } controller.dismiss(animated: true, completion: nil) }}macOS के लिए, .composeMessage प्रकार के साथ NSSharingService का उपयोग किया जाता है, लेकिन इसकी कार्यक्षमता सीमित है।
2. Twilio — SMS के लिए क्लाउड API
Twilio प्रोग्रामेटिक रूप से SMS भेजने के लिए सबसे लोकप्रिय सेवाओं में से एक है। Swift ऐप में एकीकरण REST API या आधिकारिक Swift क्लाइंट twilio-swift के माध्यम से किया जाता है।
लाभ:
- उच्च वितरण गति, 100 से अधिक देशों के लिए समर्थन।
- उपयोगकर्ता की भागीदारी के बिना भेजने की क्षमता (सर्वर-साइड लॉजिक)।
- लचीली सेटिंग्स: प्रेषक, टेम्पलेट, वेबहुक।
URLSession के माध्यम से भेजने का उदाहरण:
import Foundation
func sendSMSviaTwilio(to phoneNumber: String, message: String) { let accountSID = "YOUR_ACCOUNT_SID" let authToken = "YOUR_AUTH_TOKEN" let fromNumber = "+1234567890" // आपका Twilio नंबर let urlString = "https://api.twilio.com/2010-04-01/Accounts/\\(accountSID)/Messages.json" guard let url = URL(string: urlString) else { return } var request = URLRequest(url: url) request.httpMethod = "POST" let loginString = "\\(accountSID):\\(authToken)" guard let loginData = loginString.data(using: .utf8) else { return } let base64Login = loginData.base64EncodedString() request.setValue("Basic \\(base64Login)", forHTTPHeaderField: "Authorization") let bodyParams = "To=\\(phoneNumber)&From=\\(fromNumber)&Body=\\(message)"