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

前言

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

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

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

小结

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

你在被打击时,记起你的珍贵,抵抗恶意;
你在迷茫时,坚信你的珍贵,抛开蜚语;
爱你所爱 行你所行 听从你心 无问东西

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不肯过江东丶

您的鼓励将是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值