前言
提到短信接口,相信每一位程序猿都不会陌生,它可以来帮助我们实现短信验证码、短信通知等等功能,刚好最近在帮朋友开发一套会员管理系统,里面也集成了短信功能(短信接口平台选择的是腾讯云平台),借此机会就和大家分享一下Java代码如合调用腾讯云平台的短信接口。
顺便提一句~目前大部分短信接口平台都需要商家或公司认证才可以使用,而且每一家平台的短信价格也都不相同,如果你只是想个人学习的话,本人比较推荐腾讯云平台(个人认证即可使用;认证后赠送测试短信;购买价格相对较低;接口文档详细)。
注册腾讯云平台并申请签名
想使用腾讯云的短信接口,需要先做点准备工作~
首先就是注册一个腾讯云平台(腾讯云链接:https://cloud.tencent.com/)账号并进入控制台,在左上角的“云产品”中找到“短信”,进入到短信控制台。
接下来就是需要认证账号、申请签名和短信模板了,我认证的账号是个人账号,在申请签名时“签名类型”选择的是“公众号”(如果签名类型选择公众号的话,就需要先去微信开放平台申请一个微信公众号,再来申请短信签名),后面按照提示一步一步的操作就可以了。
申请短信模板时需要注意的是,需要在签名通过后再申请短信模板,否则模板的申请是很难通过的。
以上就是前期的准备工作,废话不多说了,直接上代码
调用短信接口
public static void sendMessage(String phoneNumber) {
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-beijing", clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
SendSmsRequest req = new SendSmsRequest();
String[] phoneNumberSet = {phoneNumber}; //短信接受号码
req.setPhoneNumberSet(phoneNumberSet);
req.setSmsSdkAppId("xxxxx"); //SdkAppId
req.setSignName("xxxxx"); //短信签名
req.setTemplateId("xxxxx"); //短信模板ID
//设置参数
String[] templateParamSet = {DateUtils.getDate(),phoneNumber};
req.setTemplateParamSet(templateParamSet);
// 返回的resp是一个SendSmsResponse的实例,与请求对象对应
SendSmsResponse resp = client.SendSms(req);
// 输出json格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(resp));
} catch (TencentCloudSDKException e) {
System.out.println(e.toString());
}
}
调用接口时有几点需要注意一下:
- 访问https://console.cloud.tencent.com/cam/capi进入到“访问管理控制台”,在“访问密钥”→“API密钥管理”中获取secretId和secretKey
- SdkAppId的获取方式是打开“短信控制台”→“应用管理”→“应用列表”,在应用列表中即可看到应用所对应的SdkAppId
- req.setSignName(“xxxxx”); 设置的是申请下来的签名的内容,并非签名ID
- 在设置参数时,参数的顺序要与模板设置的{1}、{2}…相对应,如果你的腾讯云平台账号认证的是个人账号,那么参数的长度也会有相应的限制(参数长度不能大于12)
小结
如果文章中有错误,欢迎大家留言指正;若您有更好、更独到的理解,欢迎您在留言区留下您的宝贵想法。
你在被打击时,记起你的珍贵,抵抗恶意;
你在迷茫时,坚信你的珍贵,抛开蜚语;
爱你所爱 行你所行 听从你心 无问东西