跳到主要内容

GO SDK

1. 准备工作

1) 获取API密钥信息

在调用API之前,您需要获取用于生成X-Signature签名的关键信息。您需要提供AccessKeyIdAccessKeySecret,这些信息可以从控制台账户中获取。有关如何获取这些信息的详细步骤,请参考:如何获取AccessKeyId和AccessKeySecret

2) 申请短信模板

如何申请短信模板

2. SDK

1) 使用go get安装。

go get github.com/uspeedo/uspeedo-sdk-go

注意:如果遇到不稳定的网络,您可以使用代理服务器加快下载速度,例如使用GOPROXY加速

export GOPROXY=https://goproxy.io

2) 使用go mod安装

导入SDK

import _ "github.com/uspeedo/uspeedo-sdk-go"

然后,在项目根目录执行:

go mod init
go mod tidy

3. 示例

请查看github链接了解详情: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()

// 创建模板

createTemplateReq := asmsClient.NewCreateUSMSTemplateReq()
createTemplateReq.Template = uspeedo.String("您的验证码是{1}")
createTemplateReq.Purpose = uspeedo.Int(1)
createTemplateReq.Remark = uspeedo.String("这是一个测试模板")
createTemplateReq.TemplateName = uspeedo.String("测试模板")

createTemplateResp, err := asmsClient.CreateUSMSTemplate(createTemplateReq)
if err != nil {
fmt.Printf("发生错误:%s\n", err)
} else {
fmt.Printf("请求的响应:%v\n", createTemplateResp)
}

// 查询模板

queryTemplateReq := asmsClient.NewQueryUSMSTemplateReq()
queryTemplateReq.TemplateId = []string{"UTAXXXXXXXXXXX"}
queryTemplateResp, err := asmsClient.QueryUSMSTemplate(queryTemplateReq)
if err != nil {
fmt.Printf("发生错误:%s\n", err)
} else {
fmt.Printf("请求的响应:%v\n", queryTemplateResp)
}

// 更新模板

updateTemplateReq := asmsClient.NewUpdateUSMSTemplateReq()
updateTemplateReq.TemplateId = uspeedo.String("UTAXXXXXXXXXXX")
updateTemplateReq.Template = uspeedo.String("您的验证码是{1},谢谢")
updateTemplateResp, err := asmsClient.UpdateUSMSTemplate(updateTemplateReq)
if err != nil {
fmt.Printf("发生错误:%s\n", err)
} else {
fmt.Printf("请求的响应:%v\n", updateTemplateResp)
}

// 删除模板

deleteTemplateReq := asmsClient.NewDeleteUSMSTemplateReq()
deleteTemplateReq.TemplateIds = []string{"UTAXXXXXXXXXXX"}
deleteTemplateResp, err := asmsClient.DeleteUSMSTemplate(deleteTemplateReq)
if err != nil {
fmt.Printf("发生错误:%s\n", err)
} else {
fmt.Printf("请求的响应:%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 = "从console.uspeedo.com获取访问密钥ID"
credential.PrivateKey = "从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"},
},
},
},
}

// 发送请求
resp, err := asmsClient.SendBatchUSMSMessage(req)
if err != nil {
fmt.Printf("发生错误:%s\n", err)
} else {
fmt.Printf("请求的响应:%v\n", resp)
}
}

func main() {
TestTemplateApi()
TestSendMessage()
}