龙空技术网

大聪明教你学Java | 调用腾讯云短信接口,实现短信通知

程序那点事 377

前言:

此刻大家对“java实现发短信”大概比较着重,我们都想要学习一些“java实现发短信”的相关资讯。那么小编在网上网罗了一些对于“java实现发短信””的相关资讯,希望咱们能喜欢,姐妹们快快来了解一下吧!

前言

提到短信接口,相信每一位程序猿都不会陌生,它可以来帮助我们实现短信验证码、短信通知等等功能,刚好最近在帮朋友开发一套会员管理系统,里面也集成了短信功能(短信接口平台选择的是腾讯云平台),借此机会就和大家分享一下Java代码如合调用腾讯云平台的短信接口。

顺便提一句~目前大部分短信接口平台都需要商家或公司认证才可以使用,而且每一家平台的短信价格也都不相同,如果你只是想个人学习的话,本人比较推荐腾讯云平台(个人认证即可使用;认证后赠送测试短信;购买价格相对较低;接口文档详细)。

注册腾讯云平台并申请签名

想使用腾讯云的短信接口,需要先做点准备工作~ 首先就是注册一个腾讯云平台(腾讯云链接:cloud.tencent.com/)账号并进入控制台,在左上角的“云产品”中找到“短信”,进入到短信控制台。

接下来就是需要认证账号、申请签名和短信模板了,我认证的账号是个人账号,在申请签名时“签名类型”选择的是“公众号”(如果签名类型选择公众号的话,就需要先去微信开放平台申请一个微信公众号,再来申请短信签名),后面按照提示一步一步的操作就可以了。

申请短信模板时需要注意的是,需要在签名通过后再申请短信模板,否则模板的申请是很难通过的。

以上就是前期的准备工作,废话不多说了,直接上代码

调用短信接口

public static void sendMessage(String phoneNumber) {        try{            // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密            // 密钥可前往网站进行获取            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());        }    }复制代码

调用接口时有几点需要注意一下:

访问console.cloud.tencent.com/cam/capi进入到“访问管理控制台”,在“访问密钥”→“API密钥管理”中获取secretId和secretKeySdkAppId的获取方式是打开“短信控制台”→“应用管理”→“应用列表”,在应用列表中即可看到应用所对应的SdkAppId==req.setSignName("xxxxx"); 设置的是申请下来的签名的内容,并非签名ID==在设置参数时,参数的顺序要与模板设置的{1}、{2}...相对应,如果你的腾讯云平台账号认证的是个人账号,那么参数的长度也会有相应的限制(参数长度不能大于12)小结

本人经验有限,有些地方可能讲的没有特别到位,如果您在阅读的时候想到了什么问题,欢迎在评论区留言,我们后续再一一探讨‍

希望各位小伙伴动动自己可爱的小手,来一波点赞+关注 (✿◡‿◡) 让更多小伙伴看到这篇文章~ 蟹蟹呦(●'◡'●)

如果文章中有错误,欢迎大家留言指正;若您有更好、更独到的理解,欢迎您在留言区留下您的宝贵想法。

爱你所爱 行你所行 听从你心 无问东西

作者:不肯过江东丶

链接:

标签: #java实现发短信