Sign inGet Started

Go

तीन चरणों में Go से अपना पहला ईमेल भेजें: SDK इंस्टॉल करें, एक हैंडलर लिखें जो भेजता है, और चलाएँ। यह क्विकस्टार्ट स्टैंडर्ड लाइब्रेरी के net/http का उपयोग करता है, किसी फ्रेमवर्क की ज़रूरत नहीं।

1. इंस्टॉल करें

कोड उदाहरण
go mod init example.com/bird-quickstart
go get github.com/messagebird/bird-sdk-go
SDK के लिए Go 1.24+ ज़रूरी है। डैशबोर्ड में Developers > API keys से एक API key लें और उसे export करें; SDK key के bk_us1_ / bk_eu1_ प्रीफ़िक्स से रीजन का अनुमान लगाता है, इसलिए और कुछ कॉन्फ़िगर करने की ज़रूरत नहीं:
कोड उदाहरण
export BIRD_API_KEY="bk_us1_..."

2. भेजें

main.go बनाएँ जिसमें एक HTTP हैंडलर हो जो Bird के शेयर्ड ऑनबोर्डिंग डोमेन से भेजता है, ताकि डोमेन सत्यापन की ज़रूरत न हो:
कोड उदाहरण
package main

import (
	"encoding/json"
	"errors"
	"log"
	"net/http"
	"os"

	bird "github.com/messagebird/bird-sdk-go"
	"github.com/messagebird/bird-sdk-go/option"
)

func main() {
	client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
	if err != nil {
		log.Fatal(err)
	}

	http.HandleFunc("POST /send", func(w http.ResponseWriter, r *http.Request) {
		msg, err := client.Email.Send(r.Context(), bird.EmailSendParams{
			From:    "onboarding@messagebird.dev",
			To:      []string{"delivered@messagebird.dev"},
			Subject: "Hello from Bird",
			HTML:    "<p>My first Bird email.</p>",
		})
		if err != nil {
			var apiErr *bird.APIError
			if errors.As(err, &apiErr) {
				http.Error(w, apiErr.Error(), apiErr.StatusCode)
				return
			}
			http.Error(w, err.Error(), http.StatusInternalServerError)
			return
		}
		w.Header().Set("Content-Type", "application/json")
		w.WriteHeader(http.StatusAccepted)
		_ = json.NewEncoder(w).Encode(msg)
	})

	log.Fatal(http.ListenAndServe(":3000", nil))
}
SDK हर Send कॉल के लिए एक idempotency key जनरेट करता है और टाइमआउट, 429 रिस्पॉन्स, तथा 5xx रिस्पॉन्स पर फिर से प्रयास करते समय उसी key का पुन: उपयोग करता है। इसलिए फिर से प्रयास करने पर दूसरा send नहीं बनता।

3. आज़माएँ

कोड उदाहरण
go run . &
curl -X POST localhost:3000/send
Bird 202 के साथ रिस्पॉन्ड करता है, ईमेल को एसिंक्रोनस डिलीवरी के लिए स्वीकार करता है, और हैंडलर मैसेज लौटाता है। *_count फ़ील्ड्स डिलीवरी स्टेट्स के ज़रिए प्राप्तकर्ताओं को ट्रैक करते हैं। शुरुआती रिस्पॉन्स में एक प्राप्तकर्ता स्वीकृत होता है और कोई डिलीवर नहीं होता:
कोड उदाहरण
{
  "id": "em_01ky7ma8y2es1s2akzk53tmjn0",
  "status": "accepted",
  "category": "marketing",
  "from": { "email": "onboarding@messagebird.dev" },
  "to": [{ "email": "delivered@messagebird.dev" }],
  "subject": "Hello from Bird",
  "accepted_count": 1,
  "processed_count": 0,
  "delivered_count": 0,
  "deferred_count": 0,
  "bounced_count": 0,
  "complained_count": 0,
  "rejected_count": 0,
  "open_count": 0,
  "click_count": 0,
  "track_opens": true,
  "track_clicks": true,
  "created_at": "2026-07-23T13:58:20.866Z"
}
चूँकि प्राप्तकर्ता delivered@messagebird.dev सैंडबॉक्स एड्रेस है, डिलीवरी गारंटीड है। मैसेज को उसके em_ ID से client.Email.Get द्वारा फ़ेच करें और स्टेटस को delivered में बदलते देखें।

अगले कदम

संबंधित संसाधन

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।

अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ