Spring?Boot騰訊云短信申請(qǐng)與使用示例
1.在pom.xml文件中添加依賴
<dependency>
<groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId>
<version>3.1.270</version>
</dependency>
2.新建SmsConstant常量類保存需要用到的常量
public class SmsConstant {
public static final String SDKAPPID = "";
public static final String SECRETID = "";
public static final String SECRETKEY = "";
public static final String SIGNNAME = "";
public static final String TEMPLATEID = "";
}
下面說(shuō)明一下以上各個(gè)值如何獲取
2.1.點(diǎn)擊進(jìn)入騰訊云短信服務(wù)官網(wǎng)


2.2.點(diǎn)擊進(jìn)入騰訊云短信控制臺(tái)
SDKAPPID 就是下圖中的SDKAppID,沒(méi)有就創(chuàng)建

2.3.點(diǎn)擊進(jìn)入 API密鑰管理
SECRETID 和SECRETKEY 就是下圖中的SecretID 和 SecretKey

2.4.創(chuàng)建簽名,等待審核

SIGNNAME 就是下圖中的內(nèi)容

2.5.創(chuàng)建正文模板,等待審核
TEMPLATEID 就是下圖中的ID

3.新建SendSmsUtil工具類
import com.admin.common.constant.SmsConstant;
import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
//導(dǎo)入可選配置類
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
// 導(dǎo)入對(duì)應(yīng)SMS模塊的client
import com.tencentcloudapi.sms.v20210111.SmsClient;
// 導(dǎo)入要請(qǐng)求接口對(duì)應(yīng)的request response類
import com.tencentcloudapi.sms.v20210111.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20210111.models.SendSmsResponse;
public class SendSmsUtil {
public static void sendSms(String phoneNumber, String verificationCode) {
try {
/* 必要步驟:
* 實(shí)例化一個(gè)認(rèn)證對(duì)象,入?yún)⑿枰獋魅腧v訊云賬戶密鑰對(duì)secretId,secretKey。
* 這里采用的是從環(huán)境變量讀取的方式,需要在環(huán)境變量中先設(shè)置這兩個(gè)值。
* 你也可以直接在代碼中寫(xiě)死密鑰對(duì),但是小心不要將代碼復(fù)制、上傳或者分享給他人,
* 以免泄露密鑰對(duì)危及你的財(cái)產(chǎn)安全。
* CAM密匙查詢: https://console.cloud.tencent.com/cam/capi*/
Credential cred = new Credential(SmsConstant.SECRETID, SmsConstant.SECRETKEY);
// 實(shí)例化一個(gè)http選項(xiàng),可選,沒(méi)有特殊需求可以跳過(guò)
HttpProfile httpProfile = new HttpProfile();
// 設(shè)置代理
// httpProfile.setProxyHost("真實(shí)代理ip");
// httpProfile.setProxyPort(真實(shí)代理端口);
/* SDK默認(rèn)使用POST方法。
* 如果你一定要使用GET方法,可以在這里設(shè)置。GET方法無(wú)法處理一些較大的請(qǐng)求 */
httpProfile.setReqMethod("POST");
/* SDK有默認(rèn)的超時(shí)時(shí)間,非必要請(qǐng)不要進(jìn)行調(diào)整
* 如有需要請(qǐng)?jiān)诖a中查閱以獲取最新的默認(rèn)值 */
httpProfile.setConnTimeout(60);
/* SDK會(huì)自動(dòng)指定域名。通常是不需要特地指定域名的,但是如果你訪問(wèn)的是金融區(qū)的服務(wù)
* 則必須手動(dòng)指定域名,例如sms的上海金融區(qū)域名: sms.ap-shanghai-fsi.tencentcloudapi.com */
httpProfile.setEndpoint("sms.tencentcloudapi.com");
/* 非必要步驟:
* 實(shí)例化一個(gè)客戶端配置對(duì)象,可以指定超時(shí)時(shí)間等配置 */
ClientProfile clientProfile = new ClientProfile();
/* SDK默認(rèn)用TC3-HMAC-SHA256進(jìn)行簽名
* 非必要請(qǐng)不要修改這個(gè)字段 */
clientProfile.setSignMethod("HmacSHA256");
clientProfile.setHttpProfile(httpProfile);
/* 實(shí)例化要請(qǐng)求產(chǎn)品(以sms為例)的client對(duì)象
* 第二個(gè)參數(shù)是地域信息,可以直接填寫(xiě)字符串a(chǎn)p-guangzhou,或者引用預(yù)設(shè)的常量 */
SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
/* 實(shí)例化一個(gè)請(qǐng)求對(duì)象,根據(jù)調(diào)用的接口和實(shí)際情況,可以進(jìn)一步設(shè)置請(qǐng)求參數(shù)
* 你可以直接查詢SDK源碼確定接口有哪些屬性可以設(shè)置
* 屬性可能是基本類型,也可能引用了另一個(gè)數(shù)據(jù)結(jié)構(gòu)
* 推薦使用IDE進(jìn)行開(kāi)發(fā),可以方便的跳轉(zhuǎn)查閱各個(gè)接口和數(shù)據(jù)結(jié)構(gòu)的文檔說(shuō)明 */
SendSmsRequest req = new SendSmsRequest();
/* 填充請(qǐng)求參數(shù),這里request對(duì)象的成員變量即對(duì)應(yīng)接口的入?yún)?
* 你可以通過(guò)官網(wǎng)接口文檔或跳轉(zhuǎn)到request對(duì)象的定義處查看請(qǐng)求參數(shù)的定義
* 基本類型的設(shè)置:
* 幫助鏈接:
* 短信控制臺(tái): https://console.cloud.tencent.com/smsv2
* sms helper: https://cloud.tencent.com/document/product/382/3773 */
/* 短信應(yīng)用ID: 短信SdkAppId在 [短信控制臺(tái)] 添加應(yīng)用后生成的實(shí)際SdkAppId,示例如1400006666 */
String sdkAppId = SmsConstant.SDKAPPID;
req.setSmsSdkAppId(sdkAppId);
/* 短信簽名內(nèi)容: 使用 UTF-8 編碼,必須填寫(xiě)已審核通過(guò)的簽名,簽名信息可登錄 [短信控制臺(tái)] 查看 */
String signName = SmsConstant.SIGNNAME;
req.setSignName(signName);
/* 國(guó)際/港澳臺(tái)短信 SenderId: 國(guó)內(nèi)短信填空,默認(rèn)未開(kāi)通,如需開(kāi)通請(qǐng)聯(lián)系 [sms helper] */
String senderid = "";
req.setSenderId(senderid);
/* 用戶的 session 內(nèi)容: 可以攜帶用戶側(cè) ID 等上下文信息,server 會(huì)原樣返回 */
String sessionContext = "xxx";
req.setSessionContext(sessionContext);
/* 短信號(hào)碼擴(kuò)展號(hào): 默認(rèn)未開(kāi)通,如需開(kāi)通請(qǐng)聯(lián)系 [sms helper] */
String extendCode = "";
req.setExtendCode(extendCode);
/* 模板 ID: 必須填寫(xiě)已審核通過(guò)的模板 ID。模板ID可登錄 [短信控制臺(tái)] 查看 */
String templateId = SmsConstant.TEMPLATEID;
req.setTemplateId(templateId);
/* 下發(fā)手機(jī)號(hào)碼,采用 E.164 標(biāo)準(zhǔn),+[國(guó)家或地區(qū)碼][手機(jī)號(hào)]
* 示例如:+8613711112222, 其中前面有一個(gè)+號(hào) ,86為國(guó)家碼,13711112222為手機(jī)號(hào),最多不要超過(guò)200個(gè)手機(jī)號(hào) */
String[] phoneNumberSet = {"+86" + phoneNumber};
req.setPhoneNumberSet(phoneNumberSet);
/* 模板參數(shù): 若無(wú)模板參數(shù),則設(shè)置為空 */
String[] templateParamSet = {verificationCode};
req.setTemplateParamSet(templateParamSet);
/* 通過(guò) client 對(duì)象調(diào)用 SendSms 方法發(fā)起請(qǐng)求。注意請(qǐng)求方法名與請(qǐng)求對(duì)象是對(duì)應(yīng)的
* 返回的 res 是一個(gè) SendSmsResponse 類的實(shí)例,與請(qǐng)求對(duì)象對(duì)應(yīng) */
SendSmsResponse res = client.SendSms(req);
// 輸出json格式的字符串回包
System.out.println(SendSmsResponse.toJsonString(res));
// 也可以取出單個(gè)值,你可以通過(guò)官網(wǎng)接口文檔或跳轉(zhuǎn)到response對(duì)象的定義處查看返回字段的定義
System.out.println(res.getRequestId());
} catch (TencentCloudSDKException e) {
e.printStackTrace();
}
}
}

到此這篇關(guān)于Spring Boot騰訊云短信申請(qǐng)與使用的文章就介紹到這了,更多相關(guān)Spring Boot騰訊云短信內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot+MinIO實(shí)現(xiàn)文件切片極速詳解
在現(xiàn)代Web應(yīng)用中,文件上傳是一個(gè)常見(jiàn)的需求,尤其是對(duì)于大文件的上傳,如視頻、音頻或大型文檔,所以本文就來(lái)為大家介紹一下如何使用Spring Boot和MinIO實(shí)現(xiàn)文件切片極速上傳技術(shù)吧2023-12-12
SpringBoot整合Swagger3生成接口文檔過(guò)程解析
這篇文章主要介紹了SpringBoot整合Swagger3生成接口文檔過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
springboot與redis的簡(jiǎn)單整合實(shí)例
Redis是一個(gè)緩存、消息代理和功能豐富的鍵值存儲(chǔ)。StringBoot提供了基本的自動(dòng)配置。這篇文章主要介紹了springboot與redis的簡(jiǎn)單整合實(shí)例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2019-01-01
springboot 設(shè)置局域網(wǎng)訪問(wèn)的實(shí)現(xiàn)步驟
Spring Boot是一個(gè)開(kāi)源Java-based框架,用于創(chuàng)建獨(dú)立的、生產(chǎn)級(jí)別的Spring應(yīng)用,它旨在簡(jiǎn)化Spring應(yīng)用的初始搭建及開(kāi)發(fā)過(guò)程,通過(guò)提供各種自動(dòng)配置的starter包,Spring Boot使得項(xiàng)目配置變得簡(jiǎn)單快速,感興趣的朋友一起看看吧2024-02-02

