第6章:移动端开发-02-移动开发腾讯云短信申请 5. 腾讯云短信申请5.1 申请短信SMS试用访问腾讯云短信网址:https://cloud.tencent.com/product/sms 点击免费领取短信微信扫码登录,并进入短信控制台,点击快速入门创建短信签名创建模板稍微等待,审核通过才能使用5.2 短信接口测试创建应用可用于个性化管理短信发送任务例如设置不同的发送频率和发送超量提醒等创建完成,点击已创建应用查看应用详情调用短信API发送短信时需要使用SDK AppID和App Key用户管理https://console.cloud.tencent.com/cam查看密钥https://console.cloud.tencent.com/cam/capi选择自定义创建子账户设置用户权限创建完成后点击用户名查看密钥API文档网址:https://cloud.tencent.com/document/product/382/43194在health_common项目添加腾讯云短信依赖!--腾讯云短信-- dependency groupIdcom.tencentcloudapi/groupId artifactIdtencentcloud-sdk-java/artifactId version3.1.62/version!-- 注这里只是示例版本号请获取并替换为 最新的版本号 -- /dependency工具类package com.liusp.utils; import com.tencentcloudapi.common.Credential; // 导入对应SMS模块的client import com.tencentcloudapi.sms.v20190711.SmsClient; import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest; import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse; import java.util.Random; /** * 腾讯云短信 */ public class SmsComponent { //腾讯云账户密钥对 secretId 和 secretKey private String secretIdAKIDPgiUyCArGPHtFLAn9E2btueE********; private String secretKey5tQhhRu61h5C2dx0nLcT6asuf*******; //应用SDKAppID private String appid1400658728; //短信签名内容 private String signAAA管理系统公众号; //模板 ID private String templateId1360839; private String[] phoneNumbers; public void sendSmsCode(String phone, String code) { try { //实例化一个认证对象入参需要传入腾讯云账户密钥对 secretId 和 secretKey Credential cred new Credential(secretId, secretKey); // 实例化 SMS 的 client 对象第二个参数是地域信息可以直接填写字符串 ap-guangzhou或者引用预设的常量 SmsClient client new SmsClient(cred, ); //实例化一个请求对象根据调用的接口和实际情况可以进一步设置请求参数 SendSmsRequest req new SendSmsRequest(); //短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID例如1400006666 req.setSmsSdkAppid(appid); /* 短信签名内容: 使用 UTF-8 编码必须填写已审核通过的签名可登录 [短信控制台] 查看签名信息 */ req.setSign(sign); /* 模板 ID: 必须填写已审核通过的模板 ID可登录 [短信控制台] 查看模板 ID */ req.setTemplateID(templateId); /* 模板参数: 若无模板参数则设置为空*/ String[] templateParams {code,5}; req.setTemplateParamSet(templateParams); /* 下发手机号码采用 e.164 标准[国家或地区码][手机号] * 例如8613711112222 其中前面有一个号 86为国家码13711112222为手机号最多不要超过200个手机号*/ phone 86 phone; String[] phoneNumbers {phone}; req.setPhoneNumberSet(phoneNumbers); /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 * 返回的 res 是一个 SendSmsResponse 类的实例与请求对象对应 */ SendSmsResponse res client.SendSms(req); // 输出 JSON 格式的字符串回包 System.out.println(SendSmsResponse.toJsonString(res)); // 可以取出单个值您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义 System.out.println(res.getRequestId()); } catch (Exception e) { e.printStackTrace(); } } public static String randomCode() { StringBuilder str new StringBuilder(); Random random new Random(); for (int i 0; i 6; i) { str.append(random.nextInt(10)); } return str.toString(); } public static void main(String[] args) { SmsComponent scnew SmsComponent(); String code SmsComponent.randomCode(); sc.sendSmsCode(手机号,code); System.out.println(code验证码发送成功); } }