Golang阿里云短信服务使用教程

目录

概述

哪些平台有短信服务?

阿里云短信服务使用可以分为以下四步

开通阿里云短信服务

登录阿里云

找到短信服务

开通短信服务

 申请签名和模板

什么是短信签名,什么是模板?

申请签名

申请模板

获取账号的AccessKey ID 和AccessKey Secret

什么是AccessKey ID 和AccessKey Secret?

获取AccessKey ID

API发送短信或则控制台发送

使用API发送短信

使用控制台发送信息


概述

哪些平台有短信服务?

许多平台都提供短信服务,例如:阿里云,腾讯云,中国移动,中国联通,中国电信等

此文章使用阿里云的短信服务

阿里云短信服务使用可以分为以下四步

1.开通阿里云短信服务

2.申请签名和模板

3.获取账号的AccessKey ID 和AccessKey Secret

4.API发送短信或则控制台发送

开通阿里云短信服务

登录阿里云

找到短信服务

在首页的导航栏产品中找到企业服务与云通信中的短信服务点开

开通短信服务

阿里云有个人免费100条短信,我们选择免费开通

 开通后来到下面的页面中

 申请签名和模板

什么是短信签名,什么是模板?

签名是短信中能代表发送者属性的字段

模板即具体发送的短信内容

申请签名

点击左侧栏国内消息添加签名

 点击添加签名后到以下页面,然后按照要求填写即可并提交即可

 一般两个小时内会出审批结果

申请模板

点击国内消息,模板管理,添加模板

 同样按要求填写并提交即可

等待审核结束,我们就得到了签名模板

获取账号的AccessKey ID 和AccessKey Secret

什么是AccessKey ID 和AccessKey Secret?

AccessKey ID 和 AccessKey Secret 是您访问阿里云 API 的密钥,具有该账户完全的权限,请您妥善保管

获取AccessKey ID

鼠标放到右上角头像上,点击AccessKey管理 

进入以下页面如果已有AccessKey可以跳过此部

点击创建AccessKey

 可能需要验证一些信息,直接验证即可

然后会得到AccessKeyID,点击后面的查看Secret可以获得AccessKey Secret

 到这即可获得AccessKey ID和AccessKey Secret

API发送短信或则控制台发送

使用API发送短信

这里我使用官方的快速使用案例,为其中每一步做出解释

首先我们需要导入dysmsapi包

go get github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi

使用NewClientWithAccessKey()创建一个client客户端,这个客户端可以调用阿里云的API

package main

import (
	"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)

func main() {
    //参数一:连接的节点地址(有很多节点选择,这里我选择杭州)
    //参数二:AccessKey ID
    //参数三:AccessKey Secret
	client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", "LTAI5t**********AWVNP", "qgzyEW4cA*******PBl7iyw")
}

然后创建请求,并填写请求信息

package main

import (
    "encoding/json"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)

func main() {
    //参数一:连接的节点地址(有很多节点选择,这里我选择杭州)
    //参数二:AccessKey ID
    //参数三:AccessKey Secret
	client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", "LTAI5t**********AWVNP", "qgzyEW4cA*******PBl7iyw")

    request := dysmsapi.CreateSendSmsRequest()       //创建请求
	request.Scheme = "https"                         //请求协议
	request.PhoneNumbers = "155******85"             //接收短信的手机号码
	request.SignName = "教程"                         //短信签名名称
	request.TemplateCode = "SMS_******236"           //短信模板ID
	par, err := json.Marshal(map[string]interface{}{ //定义短信模板参数(具体需要几个参数根据自己短信模板格式)
		"code": "123456",
	})
	request.TemplateParam = string(par)      //将短信模板参数传入短信模板
}

调用SendSms()方法发送请求,并处理错误

package main

import (
    "encoding/json"
	"github.com/aliyun/alibaba-cloud-sdk-go/services/dysmsapi"
)

func main() {
    //参数一:连接的节点地址(有很多节点选择,这里我选择杭州)
    //参数二:AccessKey ID
    //参数三:AccessKey Secret
	client, err := dysmsapi.NewClientWithAccessKey("cn-hangzhou", "LTAI5t**********AWVNP", "qgzyEW4cA*******PBl7iyw")

    request := dysmsapi.CreateSendSmsRequest()       //创建请求
	request.Scheme = "https"                         //请求协议
	request.PhoneNumbers = "155******85"             //接收短信的手机号码
	request.SignName = "教程"                         //短信签名名称
	request.TemplateCode = "SMS_******236"           //短信模板ID
	par, err := json.Marshal(map[string]interface{}{ //定义短信模板参数(具体需要几个参数根据自己短信模板格式)
		"code": "123456",
	})
	request.TemplateParam = string(par)      //将短信模板参数传入短信模板

    response, err := client.SendSms(request) //调用阿里云API发送信息
	if err != nil {                          //处理错误
		fmt.Print(err.Error())
	}
	fmt.Printf("response is %#v\n", response) //控制台输出响应
}

执行以上代码即可向指定的手机发送信息

使用控制台发送信息

在页面的侧边栏点击国内消息, 群发助手

最后按照要求填写内容,最后提交即可

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
以下是使用Golang阿里云短信平台发送短信验证码的示例代码: ```go package main import ( "crypto/hmac" "crypto/sha1" "encoding/base64" "fmt" "io/ioutil" "math/rand" "net/http" "net/url" "sort" "strings" "time" ) func main() { // 阿里云短信平台的请求参数 params := url.Values{} params.Set("PhoneNumbers", "17633802772") // 手机号码 params.Set("SignName", "阿里云短信测试专用") // 签名名称 params.Set("TemplateCode", "SMS_123456789") // 模板CODE params.Set("TemplateParam", "{\"code\":\"123456\"}") // 模板参数 // 发送短信验证码 sendSms(params) } // 发送短信验证码 func sendSms(params url.Values) { // 阿里云短信平台的请求参数 accessKeyId := "your_access_key_id" // 替换为你的AccessKeyId accessSecret := "your_access_secret" // 替换为你的AccessKeySecret params.Set("AccessKeyId", accessKeyId) params.Set("SignatureMethod", "HMAC-SHA1") params.Set("SignatureNonce", fmt.Sprintf("%d", rand.Int63())) params.Set("SignatureVersion", "1.0") params.Set("Timestamp", time.Now().UTC().Format("2006-01-02T15:04:05Z")) // 对参数进行排序 var keys []string for k := range params { keys = append(keys, k) } sort.Strings(keys) // 构造待签名的字符串 var signStrings []string for _, k := range keys { signStrings = append(signStrings, url.QueryEscape(k)+"="+url.QueryEscape(params.Get(k))) } signString := strings.Join(signStrings, "&") // 计算签名 stringToSign := "GET&%2F&" + url.QueryEscape(signString) hmacKey := []byte(accessSecret+"&") hmacSha1 := hmac.New(sha1.New, hmacKey) hmacSha1.Write([]byte(stringToSign)) signBytes := hmacSha1.Sum(nil) sign := base64.StdEncoding.EncodeToString(signBytes) params.Set("Signature", sign) // 发送请求 url := "https://dysmsapi.aliyuncs.com/?" + params.Encode() resp, err := http.Get(url) if err != nil { fmt.Println("发送短信验证码失败:", err) return } defer resp.Body.Close() // 处理响应 body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println("发送短信验证码失败:", err) return } fmt.Println("发送短信验证码成功:", string(body)) } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值