Spring?Boot騰訊云短信申請與使用示例
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 = ""; }
下面說明一下以上各個值如何獲取
2.1.點擊進入騰訊云短信服務(wù)官網(wǎng)
2.2.點擊進入騰訊云短信控制臺
SDKAPPID 就是下圖中的SDKAppID,沒有就創(chuàng)建
2.3.點擊進入 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; //導入可選配置類 import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile; // 導入對應SMS模塊的client import com.tencentcloudapi.sms.v20210111.SmsClient; // 導入要請求接口對應的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 { /* 必要步驟: * 實例化一個認證對象,入?yún)⑿枰獋魅腧v訊云賬戶密鑰對secretId,secretKey。 * 這里采用的是從環(huán)境變量讀取的方式,需要在環(huán)境變量中先設(shè)置這兩個值。 * 你也可以直接在代碼中寫死密鑰對,但是小心不要將代碼復制、上傳或者分享給他人, * 以免泄露密鑰對危及你的財產(chǎn)安全。 * CAM密匙查詢: https://console.cloud.tencent.com/cam/capi*/ Credential cred = new Credential(SmsConstant.SECRETID, SmsConstant.SECRETKEY); // 實例化一個http選項,可選,沒有特殊需求可以跳過 HttpProfile httpProfile = new HttpProfile(); // 設(shè)置代理 // httpProfile.setProxyHost("真實代理ip"); // httpProfile.setProxyPort(真實代理端口); /* SDK默認使用POST方法。 * 如果你一定要使用GET方法,可以在這里設(shè)置。GET方法無法處理一些較大的請求 */ httpProfile.setReqMethod("POST"); /* SDK有默認的超時時間,非必要請不要進行調(diào)整 * 如有需要請在代碼中查閱以獲取最新的默認值 */ httpProfile.setConnTimeout(60); /* SDK會自動指定域名。通常是不需要特地指定域名的,但是如果你訪問的是金融區(qū)的服務(wù) * 則必須手動指定域名,例如sms的上海金融區(qū)域名: sms.ap-shanghai-fsi.tencentcloudapi.com */ httpProfile.setEndpoint("sms.tencentcloudapi.com"); /* 非必要步驟: * 實例化一個客戶端配置對象,可以指定超時時間等配置 */ ClientProfile clientProfile = new ClientProfile(); /* SDK默認用TC3-HMAC-SHA256進行簽名 * 非必要請不要修改這個字段 */ clientProfile.setSignMethod("HmacSHA256"); clientProfile.setHttpProfile(httpProfile); /* 實例化要請求產(chǎn)品(以sms為例)的client對象 * 第二個參數(shù)是地域信息,可以直接填寫字符串a(chǎn)p-guangzhou,或者引用預設(shè)的常量 */ SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile); /* 實例化一個請求對象,根據(jù)調(diào)用的接口和實際情況,可以進一步設(shè)置請求參數(shù) * 你可以直接查詢SDK源碼確定接口有哪些屬性可以設(shè)置 * 屬性可能是基本類型,也可能引用了另一個數(shù)據(jù)結(jié)構(gòu) * 推薦使用IDE進行開發(fā),可以方便的跳轉(zhuǎn)查閱各個接口和數(shù)據(jù)結(jié)構(gòu)的文檔說明 */ SendSmsRequest req = new SendSmsRequest(); /* 填充請求參數(shù),這里request對象的成員變量即對應接口的入?yún)? * 你可以通過官網(wǎng)接口文檔或跳轉(zhuǎn)到request對象的定義處查看請求參數(shù)的定義 * 基本類型的設(shè)置: * 幫助鏈接: * 短信控制臺: https://console.cloud.tencent.com/smsv2 * sms helper: https://cloud.tencent.com/document/product/382/3773 */ /* 短信應用ID: 短信SdkAppId在 [短信控制臺] 添加應用后生成的實際SdkAppId,示例如1400006666 */ String sdkAppId = SmsConstant.SDKAPPID; req.setSmsSdkAppId(sdkAppId); /* 短信簽名內(nèi)容: 使用 UTF-8 編碼,必須填寫已審核通過的簽名,簽名信息可登錄 [短信控制臺] 查看 */ String signName = SmsConstant.SIGNNAME; req.setSignName(signName); /* 國際/港澳臺短信 SenderId: 國內(nèi)短信填空,默認未開通,如需開通請聯(lián)系 [sms helper] */ String senderid = ""; req.setSenderId(senderid); /* 用戶的 session 內(nèi)容: 可以攜帶用戶側(cè) ID 等上下文信息,server 會原樣返回 */ String sessionContext = "xxx"; req.setSessionContext(sessionContext); /* 短信號碼擴展號: 默認未開通,如需開通請聯(lián)系 [sms helper] */ String extendCode = ""; req.setExtendCode(extendCode); /* 模板 ID: 必須填寫已審核通過的模板 ID。模板ID可登錄 [短信控制臺] 查看 */ String templateId = SmsConstant.TEMPLATEID; req.setTemplateId(templateId); /* 下發(fā)手機號碼,采用 E.164 標準,+[國家或地區(qū)碼][手機號] * 示例如:+8613711112222, 其中前面有一個+號 ,86為國家碼,13711112222為手機號,最多不要超過200個手機號 */ String[] phoneNumberSet = {"+86" + phoneNumber}; req.setPhoneNumberSet(phoneNumberSet); /* 模板參數(shù): 若無模板參數(shù),則設(shè)置為空 */ String[] templateParamSet = {verificationCode}; req.setTemplateParamSet(templateParamSet); /* 通過 client 對象調(diào)用 SendSms 方法發(fā)起請求。注意請求方法名與請求對象是對應的 * 返回的 res 是一個 SendSmsResponse 類的實例,與請求對象對應 */ SendSmsResponse res = client.SendSms(req); // 輸出json格式的字符串回包 System.out.println(SendSmsResponse.toJsonString(res)); // 也可以取出單個值,你可以通過官網(wǎng)接口文檔或跳轉(zhuǎn)到response對象的定義處查看返回字段的定義 System.out.println(res.getRequestId()); } catch (TencentCloudSDKException e) { e.printStackTrace(); } } }
到此這篇關(guān)于Spring Boot騰訊云短信申請與使用的文章就介紹到這了,更多相關(guān)Spring Boot騰訊云短信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring的異常處理@ExceptionHandler注解解析
這篇文章主要介紹了Spring的異常處理@ExceptionHandler注解解析,當一個Controller中有方法加了@ExceptionHandler之后,這個Controller其他方法中沒有捕獲的異常就會以參數(shù)的形式傳入加了@ExceptionHandler注解的那個方法中,需要的朋友可以參考下2023-12-12SpringMVC KindEditor在線編輯器之文件上傳代碼實例
這篇文章主要介紹了SpringMVC KindEditor在線編輯器之文件上傳代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-09-09