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 = ""; }
下面說明一下以上各個(gè)值如何獲取
2.1.點(diǎn)擊進(jìn)入騰訊云短信服務(wù)官網(wǎng)
2.2.點(diǎn)擊進(jìn)入騰訊云短信控制臺(tái)
SDKAPPID 就是下圖中的SDKAppID,沒有就創(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è)值。 * 你也可以直接在代碼中寫死密鑰對(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),可選,沒有特殊需求可以跳過 HttpProfile httpProfile = new HttpProfile(); // 設(shè)置代理 // httpProfile.setProxyHost("真實(shí)代理ip"); // httpProfile.setProxyPort(真實(shí)代理端口); /* SDK默認(rèn)使用POST方法。 * 如果你一定要使用GET方法,可以在這里設(shè)置。GET方法無法處理一些較大的請(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)指定域名。通常是不需要特地指定域名的,但是如果你訪問的是金融區(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ù)是地域信息,可以直接填寫字符串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)行開發(fā),可以方便的跳轉(zhuǎn)查閱各個(gè)接口和數(shù)據(jù)結(jié)構(gòu)的文檔說明 */ SendSmsRequest req = new SendSmsRequest(); /* 填充請(qǐng)求參數(shù),這里request對(duì)象的成員變量即對(duì)應(yīng)接口的入?yún)? * 你可以通過官網(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 編碼,必須填寫已審核通過的簽名,簽名信息可登錄 [短信控制臺(tái)] 查看 */ String signName = SmsConstant.SIGNNAME; req.setSignName(signName); /* 國際/港澳臺(tái)短信 SenderId: 國內(nèi)短信填空,默認(rèn)未開通,如需開通請(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)未開通,如需開通請(qǐng)聯(lián)系 [sms helper] */ String extendCode = ""; req.setExtendCode(extendCode); /* 模板 ID: 必須填寫已審核通過的模板 ID。模板ID可登錄 [短信控制臺(tái)] 查看 */ String templateId = SmsConstant.TEMPLATEID; req.setTemplateId(templateId); /* 下發(fā)手機(jī)號(hào)碼,采用 E.164 標(biāo)準(zhǔn),+[國家或地區(qū)碼][手機(jī)號(hào)] * 示例如:+8613711112222, 其中前面有一個(gè)+號(hào) ,86為國家碼,13711112222為手機(jī)號(hào),最多不要超過200個(gè)手機(jī)號(hào) */ String[] phoneNumberSet = {"+86" + phoneNumber}; req.setPhoneNumberSet(phoneNumberSet); /* 模板參數(shù): 若無模板參數(shù),則設(shè)置為空 */ String[] templateParamSet = {verificationCode}; req.setTemplateParamSet(templateParamSet); /* 通過 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è)值,你可以通過官網(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)文章
Java sleep方法及中斷方式、yield方法代碼實(shí)例
這篇文章主要介紹了Java sleep方法及中斷方式、yield方法代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04使用Spring事件機(jī)制實(shí)現(xiàn)異步的方法
這篇文章主要介紹了使用Spring事件機(jī)制實(shí)現(xiàn)異步的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06淺談Java中的n種隨機(jī)數(shù)產(chǎn)生辦法
眾所周知,隨機(jī)數(shù)是任何一種編程語言最基本的特征之一。而生成隨機(jī)數(shù)的基本方式也是相同的:產(chǎn)生一個(gè)0到1之間的隨機(jī)數(shù)??此坪唵危袝r(shí)我們也會(huì)忽略了一些有趣的功能。2015-09-09Java用itextpdf導(dǎo)出PDF方法(通俗易懂)
因?yàn)轫?xiàng)目需要導(dǎo)出PDF文件,所以去找了一下能夠生成PDF的java工具,這篇文章主要給大家介紹了關(guān)于Java用itextpdf導(dǎo)出PDF的相關(guān)資料,文中介紹的方法通俗易懂,需要的朋友可以參考下2023-07-07Spring的異常處理@ExceptionHandler注解解析
這篇文章主要介紹了Spring的異常處理@ExceptionHandler注解解析,當(dāng)一個(gè)Controller中有方法加了@ExceptionHandler之后,這個(gè)Controller其他方法中沒有捕獲的異常就會(huì)以參數(shù)的形式傳入加了@ExceptionHandler注解的那個(gè)方法中,需要的朋友可以參考下2023-12-12SpringMVC KindEditor在線編輯器之文件上傳代碼實(shí)例
這篇文章主要介紹了SpringMVC KindEditor在線編輯器之文件上傳代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09