GO SDK
1. 准备工作
1) 获取API密钥信息
在调用API之前,您需要获取用于生成X-Signature
签名的关键信息。您需要提供AccessKeyId
和AccessKeySecret
,这些信息可以从控制台账户中获取。有关如何获取这些信息的详细步骤,请参考:如何获取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()
}