Go (Golang) पर SMS भेजना: API लाइब्रेरी

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

Go (Golang) पर SMS भेजना: API लाइब्रेरियों का अवलोकन और कार्यान्वयन उदाहरण



SMS संदेश भेजना आधुनिक वेब एप्लिकेशन के प्रमुख कार्यों में से एक है: दो-कारक प्रमाणीकरण से लेकर ऑर्डर स्थिति सूचनाओं तक। Go (Golang) इकोसिस्टम में कई परिपक्व लाइब्रेरी मौजूद हैं जो लोकप्रिय गेटवे (Twilio, Vonage, Clickatell, रूसी प्रदाता) के माध्यम से SMS भेजने को एकीकृत करने की अनुमति देती हैं। इस लेख में, हम विस्तार से समझेंगे कि सर्वोत्तम प्रथाओं और आधिकारिक API का उपयोग करके Go पर SMS भेजना कैसे सेट अप करें।



SMS भेजने के लिए Go क्यों?

Go एक संकलित भाषा है जिसमें उत्कृष्ट समवर्ती समर्थन है, जो बड़ी संख्या में संदेशों को अतुल्यकालिक रूप से भेजने के लिए आदर्श है। अंतर्निहित goroutines और चैनलों के कारण, आप मुख्य थ्रेड को ब्लॉक किए बिना हजारों SMS अनुरोधों को संसाधित कर सकते हैं। इसके अलावा, मानक लाइब्रेरी net/http किसी भी SMS प्रदाता के REST API के साथ आसानी से काम करने की अनुमति देती है।



Go में SMS के साथ काम करने के लिए मुख्य लाइब्रेरी

  • twilio-go — Twilio के लिए आधिकारिक क्लाइंट (सबसे लोकप्रिय अंतर्राष्ट्रीय सेवा)। SMS, MMS, वॉयस कॉल का समर्थन करता है।
  • vonage-go (पूर्व में Nexmo) — Vonage API के लिए क्लाइंट।
  • go-sms — कई प्रदाताओं (SMS.ru, Twilio, Clickatell) के समर्थन के साथ सार्वभौमिक लाइब्रेरी।
  • gosms — किसी भी SMS-गेटवे के लिए HTTP अनुरोधों के लिए सरल रैपर।


लाइब्रेरी स्थापित करना

उदाहरण के लिए, हम आधिकारिक Twilio क्लाइंट का उपयोग करेंगे। go get के माध्यम से पैकेज स्थापित करें:

go get github.com/twilio/twilio-go

रूसी प्रदाता SMS.ru के लिए भी एक सुविधाजनक लाइब्रेरी है:

go get github.com/smsru/smsru-go


मूल उदाहरण: Twilio के माध्यम से SMS भेजना

शुरू करने से पहले, Twilio कंसोल से Account SID और Auth Token प्राप्त करें। नीचे न्यूनतम कार्यशील कोड है:

package main

import ( "fmt" "os"

"github.com/twilio/twilio-go" openapi "github.com/twilio/twilio-go/rest/api/v2010")

func main() { // क्लाइंट आरंभीकरण client := twilio.NewRestClientWithParams(twilio.ClientParams{ Username: os.Getenv("TWILIO_ACCOUNT_SID"), Password: os.Getenv("TWILIO_AUTH_TOKEN"), })

// संदेश पैरामीटर params := &openapi.CreateMessageParams{} params.SetTo("+1234567890") // प्राप्तकर्ता का नंबर params.SetFrom("+0987654321") // आपका Twilio नंबर params.SetBody("नमस्ते! यह Go से एक परीक्षण SMS है!")

// भेजना resp, err := client.Api.CreateMessage(params) if err != nil { fmt.Println("भेजने में त्रुटि:", err) return }

fmt.Println("SMS भेजा गया! SID:", *resp.Sid)}


रूसी गेटवे (SMS.ru) के माध्यम से SMS भेजना

SMS.ru के साथ एकीकरण के लिए smsru-go लाइब्रेरी का उपयोग करें। कोड इस प्रकार दिखेगा:

package main

import ( "fmt" "os"

"github.com/smsru/smsru-go")

func main() { // API-कुंजी के साथ क्लाइंट बनाना client := smsru.NewClient(os.Getenv("SMSRU_API_KEY"))

// एक संदेश भेजना result, err := client.SendSMS("+79991234567", "नमस्ते! यह Go से एक परीक्षण है!") if err != nil { fmt.Println("त्रुटि:", err) return }

if result.Status == "OK" { fmt.Println("SMS भेजा गया! ID:", result.SmsID) } else { fmt.Println("त्रुटि:", result.StatusText) }}


goroutines का उपयोग करके अतुल्यकालिक भेजना

Go का एक मुख्य लाभ समानांतर रूप से SMS भेजने की क्षमता है। सामूहिक प्रेषण का उदाहरण:

package main

import ( "fmt" "sync")

func sendSMSAsync(client *smsru.Client, phone, message string, wg *sync.WaitGroup) { defer wg.Done() resul

अनुशंसाएँ