搜索
Hi~登录注册
查看: 174|回复: 0

java对接腾讯云短信,通过api发送短信

[复制链接]

8068

主题

8085

帖子

9987

积分

极简大咖

Rank: 3Rank: 3

积分
9987
发表于 2021-6-3 19:53 | 显示全部楼层 |阅读模式
    java对接腾讯云短信,通过api发送短信

简介
腾讯云短信(Short Message Service,SMS)沉淀腾讯十多年短信服务技术和经验,为 QQ、微信等亿级平台和10万+客户提供快速灵活接入的高质量的国内短信与国际/港澳台短信服务,具有非常高的稳定性。本文主要介绍如何使用Java SDk进行和腾讯云短信平台的对接,对接目标是在Java应用程序调用腾讯云短信的接口向目标手机号发送短信。

腾讯云短信发送平台的操作
登陆腾讯云平台https://cloud.tencent.com/,登陆成功后搜索短信,进入短信产品的控制台,新用户也许可以免费领取一定额度的免费短信。进入短信平台后,需要创建签名和创建正文模板。

这两步都需要审核,按照指引填写即可。

创建短信签名和模版
签名创建成功并审核通过后,在控制台可以看到签名的id和签名的内容,其中签名的内容在后续的开发中会用到。

短信正文模版创建成功和通过后,可以看到模版的ID和模版的内容,模版的内容可以用占位符{number},比如以下的短信正文模版:

TSF应用告警:告警标题:{1},告警内容:{2}。

上面的模版含有2个参数,在后续会有用到。

创建应用
在短信平台中的应用管理里创建应用(如果有可以不用创建),创建成功后,有个SDK AppID,这个在后续中会用到。

创建secretId和secretKey
secretid和secretKey在https://console.cloud.tencent.com/cam/capi中创建,secretid和secretKey具有非常高的访问权限,不能随意泄露给别人。

购买短信包
如果没有短信额度,调用api报错。

sdk开发
sdk引入

在java应用的pom应用引入以下的sdk依赖,建议在导入sdk之前,在maven仓库中查询最新的sdk版本,本文的sdk版本为3.0.112。

<dependency>
                        <groupId>com.tencentcloudapi</groupId>
                        <artifactId>tencentcloud-sdk-java</artifactId>
                        <!-- go to https://search.maven.org/search?q=tencentcloud-sdk-java and get the latest version. -->
                        <!-- 请到https://search.maven.org/search?q=tencentcloud-sdk-java查询最新版本 -->
                        <version>3.0.112</version>
</dependency>
代码实现:

具体的代码见下面,参数说明见代码的注释:

public static void main(String[] args) {

        // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,见《创建secretId和secretKey》小节
        Credential cred = new Credential("2s2e22",
                "seceawwwe");

        // 实例化要请求产品(以cvm为例)的client对象
        ClientProfile clientProfile = new ClientProfile();
        clientProfile.setSignMethod(ClientProfile.SIGN_TC3_256);
        SmsClient smsClient = new SmsClient(cred, "ap-chongqing");//第二个ap-chongqing 填产品所在的区
        SendSmsRequest sendSmsRequest = new SendSmsRequest();
        sendSmsRequest.setSmsSdkAppid("140102072921");//appId ,见《创建应用》小节
        String[] phones={"+8615007187307"};  //发送短信的目标手机号,可填多个。
        sendSmsRequest.setPhoneNumberSet(phones);
        sendSmsRequest.setTemplateID("4976412");  //模版id,见《创建短信签名和模版》小节
        String [] templateParam={"应用离线了","应用内存溢出,应用down了"};//模版参数,从前往后对应的是模版的{1}、{2}等,见《创建短信签名和模版》小节
        sendSmsRequest.setTemplateParamSet(templateParam);
        sendSmsRequest.setSign("腾讯云交付中心"); //签名内容,不是填签名id,见《创建短信签名和模版》小节
        try {
            SendSmsResponse sendSmsResponse= smsClient.SendSms(sendSmsRequest); //发送短信
            System.out.println(sendSmsResponse.toString());
        } catch (TencentCloudSDKException e) {
            e.printStackTrace();
        }

    }



回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 立即注册

返回顶部 返回列表