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
	}
}

(有涉及到阿里云利益问题,可以直接说明,删)

posted @ 2019-11-18 23:45  Myuniverse  阅读(850)  评论(0编辑  收藏  举报