首页 > 编程知识 正文

springboot接口测试,springboot消息推送

时间:2023-05-04 13:56:22 阅读:244977 作者:3416

本文通过详细代码展示springboot项目如何整合腾讯云短信服务

1.添加依赖 <!--腾讯云短信服务--> <dependency> <groupId>com.tencentcloudapi</groupId> <artifactId>tencentcloud-sdk-java</artifactId> </dependency> 2.发送短信的核心代码 package com.enterprise.lk.portal.utils;import com.enterprise.lk.portal.model.Sms;import com.tencentcloudapi.common.Credential;import com.tencentcloudapi.common.exception.TencentCloudSDKException;// 导入 SMS 模块的 clientimport com.tencentcloudapi.sms.v20190711.SmsClient;// 导入要请求接口对应的 request response 类import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.stereotype.Component;/** * Tencent Cloud Sms Sendsms * https://cloud.tencent.com/document/product/382/38778 */@Slf4j@Component@Configurationpublic class SendSms { @Value("${tencentcloud.sms.secretId}") private String secretId; @Value("${tencentcloud.sms.secretKey}") private String secretKey; @Value("${tencentcloud.sms.appId}") private String appId; public void sendPhoneTextMsg(Sms sms) { try { /* 必要步骤: * 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey * CAM 密钥查询:https://console.cloud.tencent.com/cam/capi*/ Credential cred = new Credential(secretId, secretKey); /* 实例化 SMS 的 client 对象 * 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */ SmsClient client = new SmsClient(cred, ""); /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数 * 您可以直接查询 SDK 源码确定接口有哪些属性可以设置 * 属性可能是基本类型,也可能引用了另一个数据结构 */ SendSmsRequest req = new SendSmsRequest(); /* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666 */ String appid = appId; req.setSmsSdkAppid(appid); /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 */ String sign = sms.getSign(); req.setSign(sign); /* 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID */ String templateID = sms.getTemplateId(); req.setTemplateID(templateID); /* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号] * 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/ req.setPhoneNumberSet(sms.getMobile()); /* 模板参数: 若无模板参数,则设置为空*/ req.setTemplateParamSet(sms.getParams()); /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的 * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */ SendSmsResponse res = client.SendSms(req); // 输出 JSON 格式的字符串回包 log.info(SendSmsResponse.toJsonString(res)); // 可以取出单个值,您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义 log.info(res.getRequestId()); } catch (TencentCloudSDKException e) { e.printStackTrace(); } }} 3.短信参数的javaBean代码 package com.enterprise.lk.portal.model;import lombok.Data;import lombok.experimental.Accessors;/** * 短信参数 */@Data@Accessors(chain = true)public class Sms { /** * 签名 */ private String sign ; /** * 模板 */ private String templateId; /** * 手机号 */ private String[] mobile; /** * 模板参数 {} */ private String[] params;} # 腾讯云短信平台tencentcloud.sms.secretId=**********tencentcloud.sms.secretKey=**********tencentcloud.sms.appId=**********

参考:腾讯云官方文档

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。