go 发送短信研究
前提:因为比较信的过阿里云的短信服务,因此本人调用阿里云上面的阿里通信。没有的可以先注册阿里云账号。并且发短信时需要钱的,需要充钱。
主要流程
-
登录阿里云
-
进入阿里云的短信服务。控制台中记录
-
添加签名和模块(要注意:验证码场景可与验证码模版匹配发送,通用场景可与验证码、短信通知、推广短信、国际/港澳台短信模版匹配发送)
-
调用接口进行
-
选择相对应的短信服务类型。填写参数。选择语言
-
填写参数之后,自动生成示例代码
-
获取AK信息
-
如果将代码复制出来单独运行,需要替换 "
", " "这两个值 -
代码模板
package main
import(
"fmt"
"log"
"strings"
"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)
// 发送短信需要必要信息
var (
regionID = "" //地区id
accessKeyID = "" //密钥id
accessSecret = "" //密钥
)
func init(){
log.SetFlags(log.Lshortfile|log.Ltime)
}
func main(){
fmt.Println("发送短信")
// 创建客户端
client,err := dysmsapi.NewClientWithAccessKey(regionID,accessKeyID,accessSecret)
if err!=nil{
log.Println("使用密钥创建客户端失败:",err)
return
}
if client==nil{
log.Println("client is nill")
return
}
log.Println(client)
// 创建发送消息请求信息
log.Println("创建发送消息请求")
request:=dysmsapi.CreateSendSmsRequest()
log.Println("准备信息")
request.Scheme = "https"
request.PhoneNumbers = "" //手机号码
request.SignName = "" // 签名的名称
request.TemplateCode = "" // 模板代码
request.TemplateParam = "{\"code\":123456}" // 会代替${code}
// 发送消息
response,err := client.SendSms(request)
if err!=nil{
log.Println("发送消息错误",err)
return
}
fmt.Printf("response is %#v\n",response)
if strings.ToLower(response.Message)=="ok"{
log.Println("发送消息成功")
return
}
}
(有涉及到阿里云利益问题,可以直接说明,删)