GO SDK
1. Preparation
1) Obtain API key information
Before calling the API, you need to obtain the key information to generate the X-Signature
signature. You need to provide AccessKeyId
and AccessKeySecret
, which can be obtained from the console account. For detailed steps on how to obtain them, please refer to: How to obtain AccessKeyId and AccessKeySecret.
2) Apply for SMS template
How to apply for an SMS template
2. SDK
1) Install using go get.
go get github.com/uspeedo/uspeedo-sdk-go
Note: If you encounter unstable network, you can use a proxy server to speed up the download, such as using GOPROXY acceleration
export GOPROXY=https://goproxy.io
2) Install using go mod
Importing SDK
import _ "github.com/uspeedo/uspeedo-sdk-go"
Afterwards, execute it in the project root directory:
go mod init
go mod tidy
3. Example
Please check the github link for details: uspeedo-sdk-go
package main
import (
"fmt"
"time"
"github.com/uspeedo/uspeedo-sdk-go/services/asms"
"github.com/uspeedo/uspeedo-sdk-go/services/asms/models"
"github.com/uspeedo/uspeedo-sdk-go/uspeedo"
"github.com/uspeedo/uspeedo-sdk-go/uspeedo/auth"
"github.com/uspeedo/uspeedo-sdk-go/uspeedo/log"
)
func TestTemplateApi() {
asmsClient := getAsmsClient()
// Create Template
createTemplateReq := asmsClient.NewCreateUSMSTemplateReq()
createTemplateReq.Template = uspeedo.String("Your verification code is {1}")
createTemplateReq.Purpose = uspeedo.Int(1)
createTemplateReq.Remark = uspeedo.String("this is a test template")
createTemplateReq.TemplateName = uspeedo.String("test template")
createTemplateResp, err := asmsClient.CreateUSMSTemplate(createTemplateReq)
if err != nil {
fmt.Printf("something bad happened: %s\n", err)
} else {
fmt.Printf("response of the request: %v\n", createTemplateResp)
}
// Query Template
queryTemplateReq := asmsClient.NewQueryUSMSTemplateReq()
queryTemplateReq.TemplateId = []string{"UTAXXXXXXXXXXX"}
queryTemplateResp, err := asmsClient.QueryUSMSTemplate(queryTemplateReq)
if err != nil {
fmt.Printf("something bad happened: %s\n", err)
} else {
fmt.Printf("response of the request: %v\n", queryTemplateResp)
}
// Update Template
updateTemplateReq := asmsClient.NewUpdateUSMSTemplateReq()
updateTemplateReq.TemplateId = uspeedo.String("UTAXXXXXXXXXXX")
updateTemplateReq.Template = uspeedo.String("Your verification code is {1},thanks")
updateTemplateResp, err := asmsClient.UpdateUSMSTemplate(updateTemplateReq)
if err != nil {
fmt.Printf("something bad happened: %s\n", err)
} else {
fmt.Printf("response of the request: %v\n", updateTemplateResp)
}
// Delete Template
deleteTemplateReq := asmsClient.NewDeleteUSMSTemplateReq()
deleteTemplateReq.TemplateIds = []string{"UTAXXXXXXXXXXX"}
deleteTemplateResp, err := asmsClient.DeleteUSMSTemplate(deleteTemplateReq)
if err != nil {
fmt.Printf("something bad happened: %s\n", err)
} else {
fmt.Printf("response of the request: %v\n", deleteTemplateResp)
}
}
func getAsmsClient() *asms.AsmsClient {
cfg := uspeedo.NewConfig()
cfg.LogLevel = log.DebugLevel
cfg.Timeout = 5 * time.Second
cfg.MaxRetries = 1
credential := auth.NewCredential()
credential.PublicKey = "Get the access key id from console.uspeedo.com"
credential.PrivateKey = "Get the access key secret from console.uspeedo.com"
asmsClient := asms.NewClient(&cfg, &credential)
return asmsClient
}
func TestSendMessage() {
asmsClient := getAsmsClient()
req := asmsClient.NewSendBatchUSMSMessageReq()
req.TaskContent = []models.SendInfo{
{
TemplateId: uspeedo.String("UTAXXXXXXXXXXX"),
SenderId: uspeedo.String("uspeedo"),
Target: []models.TargetPhone{
{
Phone: uspeedo.String("(11)11111111"),
TemplateParams: []string{"111111"},
},
},
},
}
// send request
resp, err := asmsClient.SendBatchUSMSMessage(req)
if err != nil {
fmt.Printf("something bad happened: %s\n", err)
} else {
fmt.Printf("response of the request: %v\n", resp)
}
}
func main() {
TestTemplateApi()
TestSendMessage()
}