Sign inGet Started

Go · Gin

तीन चरणों में Gin एप्लिकेशन से अपना पहला ईमेल भेजें: SDK इंस्टॉल करें, भेजने वाला रूट जोड़ें, और चलाएँ।

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

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

2. भेजें

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

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

	"github.com/gin-gonic/gin"
	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)
	}

	r := gin.Default()
	r.POST("/send", func(c *gin.Context) {
		msg, err := client.Email.Send(c.Request.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) {
				c.JSON(apiErr.StatusCode, gin.H{"error": apiErr.Error()})
				return
			}
			c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
			return
		}
		c.JSON(http.StatusAccepted, msg)
	})

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

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 पर जाते देखें।

अगले कदम

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

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

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