This is the community-supported Golang library for Nexmo. It has support for most of our APIs, but is still under active development. Issues, pull requests and other input is very welcome.
If you don't already know Nexmo: We make telephony APIs. If you need to make a call, check a phone number, or send an SMS then you are in the right place! If you don't have a Nexmo yet, you can sign up for a Nexmo account and get some free credit to get you started.
To install the package, use go get
:
go get github.com/Nyarum/nexmo-go
Or import the package into your project and then do go get .
.
Here are some simple examples to get you started. If there's anything else you'd like to see here, please open an issue and let us know! Be aware that this library is still at an alpha stage so things may change between versions.
package main
import (
"fmt"
"net/http"
"log"
"github.com/Nyarum/nexmo-go"
)
func main() {
auth := nexmo.NewAuthSet()
auth.SetAPISecret(API_KEY, API_SECRET)
client := nexmo.New(http.DefaultClient, auth)
insight, _, err := client.Insight.GetBasicInsight(nexmo.BasicInsightRequest{
Number: PHONE_NUMBER,
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Country Name:", insight.CountryName)
fmt.Println("Local Formatting:", insight.NationalFormatNumber)
fmt.Println("International Formatting:", insight.InternationalFormatNumber)
}
package main
import (
"fmt"
"log"
"net/http"
"os"
"github.com/Nyarum/nexmo-go"
)
func main() {
auth := nexmo.NewAuthSet()
auth.SetAPISecret(API_KEY, API_SECRET)
client := nexmo.NewClient(http.DefaultClient, auth)
smsReq := nexmo.SendSMSRequest {
From: FROM_NUMBER,
To: TO_NUMBER,
Text: "This message comes to you from Nexmo via Golang",
}
callR, _, err := client.SMS.SendSMS(smsReq)
if err != nil {
log.Fatal(err)
}
fmt.Println("Status:", callR.Messages[0].Status)
}
package main
import (
"fmt"
"log"
"net/http"
)
func main() {
http.HandleFunc("/webhooks/inbound-sms", func(w http.ResponseWriter, r *http.Request) {
params := r.URL.Query()
fmt.Println("SMS from " + params["msisdn"][0] + ": " + string(params["text"][0]))
})
http.ListenAndServe(":8080", nil)
}
package main
import (
"fmt"
"github.com/Nyarum/nexmo-go"
"log"
"net/http"
)
func verify_start() {
auth := nexmo.NewAuthSet()
auth.SetAPISecret(API_KEY, API_SECRET)
client := nexmo.NewClient(http.DefaultClient, auth)
verification, _, err := client.Verify.Start(nexmo.StartVerificationRequest{
Number: PHONE_NUMBER,
Brand: "Golang Docs",
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Request ID:", verification.RequestID)
}
func main() {
verify_start()
}
package main
import (
"fmt"
"github.com/Nyarum/nexmo-go"
"log"
"net/http"
)
func verify_check() {
auth := nexmo.NewAuthSet()
auth.SetAPISecret(API_KEY, API_SECRET)
client := nexmo.NewClient(http.DefaultClient, auth)
response, _, err := client.Verify.Check(nexmo.CheckVerificationRequest{
RequestID: REQUEST_ID,
Code: CODE,
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Status:", response.Status)
fmt.Println("Cost:", response.Price)
}
func main() {
verify_check()
}
We love to hear from you so if you have questions, comments or find a bug in the project, let us know! You can either:
- Open an issue on this repository
- Tweet at us! We're @NexmoDev on Twitter
- Or join the Nexmo Community Slack
- Check out the Developer Documentation at https://developer.nexmo.com - you'll find the API references for all the APIs there as well
- The documentation for the library: https://godoc.org/github.com/Nyarum/nexmo-go