前言
首先说下,几个坑已解决。准备说一下。使用的一些步骤
因为项目有一个短信验证码登录注册的,首先注册的是阿里的。但是审核没有审核通过,所以有注册了腾讯的
本来向截图一下阿里的,结果登录出错了,这里就不说了。我直接说腾讯的把,
https://console.cloud.tencent.com/smsv2/csms-sign/create
首先注册签名,这里有一个要求。但是感觉没阿里那么严格。我用的是网址。注册(签名内容填写网址全称,或简称。证明哪里就截图你网址备案的资料,申请说明填写网站域名)上面都有说
其次是申请短信模板。
,好了准备工作都差不都了。接下来就是写代码了。写代码肯定要用腾讯封装的SDK。 我是java
https://cloud.tencent.com/document/sdk 不同的语言,去这里下载
这里我选的是mvn 。这里有一个小坑。
注意:
这里的版本号只是举例,您可以在 Maven 仓库 上找到最新的版本。
Maven 仓库 中显示的4.0.11是废弃版本,由于 Maven 索引更新问题尚未完全删除。
若上面的引用方式会将腾讯云所有产品 SDK 下载到本地,可以将 artifactId 换成 tencentcloud-sdk-java-cvm/cbs/vpc 等,即可引用特定产品的 SDK,代码中使用方式和大包相同,可参考示例。最新版本也可在 Maven仓库 查询,可大大节省存储空间。
这几个不必要的坑,我都踩了。第一个是他放的mvn不是最新的,需要mvn仓库下载最新的。, Maven 仓库 中显示的4.0.11是废弃版本 。我第一次就用了4.0.11 .结果死活拉不下来。
<dependency><groupId>com.tencentcloudapi</groupId><artifactId>tencentcloud-sdk-java</artifactId><version>3.1.313</version></dependency>
我使用的是这个版本,SDK准备好了,开始看文档。
https://cloud.tencent.com/document/api 这是网址
这里有好几个文档。还是比较友好,我选择的是API3.0
package com.tanhua.sso;import com.tanhua.sso.config.TengXunSMSConfig;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
import com.tencentcloudapi.sms.v20210111.SmsClient;
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;/*** sms短信发送*/@SpringBootTest
@RunWith(SpringRunner.class)
public class SendSms {@AutowiredTengXunSMSConfig smsConfig;@Testpublic void sendSmsSend() {try {Credential cred = new Credential(smsConfig.getSecretId(), smsConfig.getSecretKey());SmsClient client = new SmsClient(cred, "ap-nanjing");// 实例化一个请求对象,每个接口都会对应一个request对象SendSmsRequest req = new SendSmsRequest();String[] phoneNumberSet1 = {"+86111111"};req.setPhoneNumberSet(phoneNumberSet1);req.setSmsSdkAppId(smsConfig.getSmsSdkAppId());req.setTemplateId(smsConfig.getTemplateId());req.setSignName(smsConfig.getSignName());String[] params = new String[]{"9527", smsConfig.getTimeOut()};req.setTemplateParamSet(params);// 返回的resp是一个SendSmsResponse的实例,与请求对象对应SendSmsResponse resp = client.SendSms(req);String json = SendSmsResponse.toJsonString(resp);System.out.println(json);if (json.contains("\"Code\":\"Ok\"")) {System.out.println("发送成功");} else {System.out.println("操作失败");}} catch (TencentCloudSDKException e) {System.out.println(e.toString());}}}
这是我的代码。因为我把其中的参数抽出来了。
还需要获取最重要的密钥TOken
// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
好了,基本OK了。如果有看到不了解的可以问我。
踩的几个坑就是那个maven SDK ,和签名名称,找他的SDK和API文档也找了好一会。 解决的办法就是,试错。 各种试吧,因为查了百度和博客。也没太看见这方面的文章。如果对你有帮助的话。希望点赞评论噢!