package main import ( "encoding/json" "fmt" "github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi" ) func (c *Client) SendAlarm(datas []AlarmInfo) (string, error) { c.Logger.Debug("param", "datas len", len(datas)) if len(datas) == 1 { c.Logger.Debug(datas[0].String()) return SendSMS(c.Moniker, datas[0].AlarmType.String(), "15611084264,18001052350") } var qC, bC, vC uint for _, v := range datas { switch v.AlarmType { case Query: qC++ case BlockHeight: bC++ case Validator: vC++ } } c.Logger.Debug(fmt.Sprintf("%v%v", c.Moniker, fmt.Sprintf("query: %d block: %d val: %d", qC, bC, vC))) //return timeStr, nil return SendSMS(c.Moniker, fmt.Sprintf("q:%db:%d", qC, bC), "15611084264,18001052350") } type content struct { //Name string `json:"name"` Detail string `json:"code"` } func SendSMS(node, detail string, phone string) (string, error) { client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", "LTAIgKB4YutaanZN", "FulRUnVp1xPRUKWgOjh3P7niYGgHet") if err != nil { return "", err } request := dysmsapi.CreateSendSmsRequest() request.Scheme = "https" request.SignName = "福利墙" request.TemplateCode = "SMS_95550089" cnt := content{detail} cByte, _ := json.Marshal(cnt) fmt.Printf("%s\n",cByte) request.TemplateParam = string(cByte) //continue request.PhoneNumbers = phone resp, err := client.SendSms(request) if err != nil { fmt.Println(phone, "sms failed : ", err.Error()) return "", err } return resp.BaseResponse.String(), nil }