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

2019-12-10 15:10:59 浏览数 (1)

简介

腾讯云短信(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。

代码语言:txt复制
<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>

代码实现:

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

代码语言:txt复制
 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();
        }

    }

0 人点赞