Skip to main content
Version: Next (unreleased)

Vonage

go get github.com/KARTIKrocks/gosms/vonage

Configuration

provider, err := vonage.NewProvider(vonage.Config{
APIKey: "api_key",
APISecret: "api_secret",
From: "MyApp",
})
if err != nil {
log.Fatal(err)
}

client := gosms.NewClient(provider)
result, err := client.Send(ctx, "+15559876543", "Hello from Vonage!")
FieldPurpose
APIKey, APISecretVonage API credentials
FromDefault sender ID or number
Typevonage.TypeText (default), TypeUnicode, or TypeBinary
TTLMessage time-to-live in milliseconds
StatusReportRequiredRequest a delivery receipt callback
CallbackURLWhere Vonage posts delivery receipts
HTTPClientOptional — override the default *http.Client
BaseURLOptional — override the Vonage API base URL (testing)

Webhook

vonage.ParseWebhook matches the gosms.WebhookParser signature — see Webhooks for the shared pattern:

http.HandleFunc("/webhook/vonage", func(w http.ResponseWriter, r *http.Request) {
status, err := vonage.ParseWebhook(r)
if err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
return
}

log.Printf("Message %s status: %s", status.MessageID, status.Status)
w.WriteHeader(http.StatusOK)
})