百度进入腾讯云短信。
第一步:完成腾讯云注册、实名认证。
第二步:创建签名、创建模板
创建签名申请说明格式:
第三步:新建密钥获取SecretId、SecretKey
完成以上步骤基本就剩下调用API了。这里腾讯云提供了调试。
文档地址:
https://cloud.tencent.com/document/product/382/55981
第四步:生成调用短信API代码
具体代码:(这里构建的是JavaWeb项目)
因为我在调用接口出现了以下问题,百度也没有找到解决办法,最后根据报错的类没有找到,所以去maven仓库引入相关jar包发现,接口调用成功了!
java.lang.NoClassDefFoundError
Caused by: java.lang.ClassNotFoundException: Didn’t find class “okio.Sink” on path:
出现以上问题原因是:没有引入相关依赖jar包
try {
// 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
// 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
Credential cred = new Credential("SecretId", "SecretKey");
// 实例化一个http选项,可选的,没有特殊需求可以跳过
HttpProfile httpProfile = new HttpProfile();
httpProfile.setEndpoint("sms.tencentcloudapi.com");
// 实例化一个client选项,可选的,没有特殊需求可以跳过
ClientProfile clientProfile = new ClientProfile();
clientProfile.setHttpProfile(httpProfile);
// 实例化要请求产品的client对象,clientProfile是可选的
SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
SendSmsRequest req = new SendSmsRequest();
//手机号以+86开头
String[] phoneNumberSet1 = {"手机号"};
req.setPhoneNumberSet(phoneNumberSet1);
//SDKAppID
req.setSmsSdkAppId("1400610283");
//签名名称
req.setSignName("");
//模板id
req.setTemplateId("");
//该数组用于动态替换下面参数值
//{1}为您的登录验证码,请于{2}分钟内填写,如非本人操作,请忽略本短信。
String[] templateParamSet1 = {"123456", "2"};
req.setTemplateParamSet(templateParamSet1);
// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
SendSmsResponse resp = client.SendSms(req);
// 输出json格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
获取SDKAppID:
短信验证码发送成功: