springboot集成阿里云短信服务
一.阿里云账号准备
流程:注册阿里云账号=>短信服务=>新增资质=>新建签名=>新建模版=>申请秘钥=>用代码测试
1.注册阿里云账号
2、登录成功后,
① 在首页搜索短信服务
② 打开第一个搜索结果
③ 免费开通
④ 可以根据提示立即更新个人/公司信息(即新增资质),也可以点击取消(根据个人需求选择,如果是自己玩,跳过即可。如果是项目集成,请立即补充,因为实际项目发短信必须要资质)
注:资质名称即短信 开头【】中的名称 :
④ 新增资质:根据图中红框标识,查看申请说明(建议了解规则,避免新增资质失败)
二、短信服务控制台
1、打开快速学习和测试
注:红框标识中的步骤必须完成!后两个步骤属于实际项目中的防护操作!
2、申请秘钥
(1)点击头像,选择AccessKey 管理
(2)如果没有账号,选择开始使用子用户(细化权限,互不影响使用)
① 使用AccessKey 管理
② 选择开始使用子用户
1》选择创建用户
2》创建用户
注意:名称格式为英文字母、数字、.、_或-。
3》 下载文件/获取秘钥信息
注:可以从下载的CSV文件中获取,也可以直接复制AccessKey ID / AccessKey Secret
4》子用户管理
添加用户组:
用户组可能以项目为维度,比如用户组1为电商项目,用户组2为教培项目。
也可能以用户权限维度,比如用户组1,只能读,用户组2只能写。
添加用户权限:
具体到该用户有哪些权限:
总之按需选择,比如我们只需要短信,查找sms相关的选择即可:
3、测试(推荐使用最后一种代码测试方法,方便理解)
① api测试:绑定手机号,选择测试模板(如果已申请短信模板,选择相应的模板测试即可),点击调用API发送短信,测试手机号收到短信!
② 控制台测试(此种方式优先推荐测试):选择测试模板,模板选择验证码(通知类型经测试也是默认验证码短信内容,要想实现自定义效果,需要先申请模板),自行输入接收短信的手机号
③ api调用测试:控制台测试中,有查看API demo 按钮,点击即可跳转
注:此种方式调用,需要准备好签名、短信模板才可以!
④ 代码测试:选择sdk示例,根据需求选择相应开发语言代码的示例到本地,写个测试方法
注:此种方式调用,需要准备好签名、短信模板、秘钥才可以!
测试代码如下:
先引入依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea</artifactId>
<version>1.3.1</version>
</dependency>
<!-- 阿里云短信服务 SDK -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>3.1.0</version>
</dependency>
<!-- 阿里云核心库-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>tea-openapi</artifactId>
<version>0.3.4</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
<!-- SLF4J API -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.36</version>
</dependency>
<!-- Logback 实现 -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.2.11</version>
</dependency>
代码:
package com.aliyun.sms;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.teaopenapi.models.Config;
public class AliyunSmsService {
private final Client client;
public AliyunSmsService(String accessKeyId, String accessKeySecret) throws Exception {
Config config = new Config()
.setAccessKeyId(accessKeyId)
.setAccessKeySecret(accessKeySecret);
this.client = new Client(config);
}
public SendSmsResponse sendSms(String phoneNumber, String signName, String templateCode, String templateParam) throws Exception {
SendSmsRequest request = new SendSmsRequest()
.setPhoneNumbers(phoneNumber)
.setSignName(signName)
.setTemplateCode(templateCode)
.setTemplateParam(templateParam);
return client.sendSms(request);
}
public static void main(String[] args) {
try {
// 替换为你的 AccessKeyId 和 AccessKeySecret
String accessKeyId = "换成你的AccessKeyId";
String accessKeySecret = "换成你的AccessKeySecret";
AliyunSmsService smsService = new AliyunSmsService(accessKeyId, accessKeySecret);
// 替换为实际的手机号码、签名名称、模板代码和模板参数
String phoneNumber = "要给谁发就替换为谁的电话号码";
String signName = "新提醒";
String templateCode = "SMS_476140185"; // 确保模板代码正确
String templateParam = "{\"code\":\"1111\"}";
SendSmsResponse response = smsService.sendSms(phoneNumber, signName, templateCode, templateParam);
// System.out.println(JSON.toJSONString(response));
} catch (TeaException e) {
System.err.println("TeaException: " + e.getMessage());
} catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
}
}
}
我使用的是代码测试,简单方便且容易看懂.
eaException: " + e.getMessage());
} catch (Exception e) {
System.err.println("Exception: " + e.getMessage());
}
}
}
我使用的是代码测试,简单方便且容易看懂.
标签:集成,短信,springboot,aliyun,测试,com,模板,String
From: https://blog.csdn.net/yanmoumou_/article/details/144893023