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.點擊進入騰訊雲短信服務官網
2.2.點擊進入騰訊雲短信控制臺
SDKAPPID 就是下圖中的SDKAppID,沒有就創建
2.3.點擊進入 API密鑰管理
SECRETID 和SECRETKEY 就是下圖中的SecretID 和 SecretKey
2.4.創建簽名,等待審核
SIGNNAME 就是下圖中的內容
2.5.創建正文模板,等待審核
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 { /* 必要步驟: * 實例化一個認證對象,入參需要傳入騰訊雲賬戶密鑰對secretId,secretKey。 * 這裡采用的是從環境變量讀取的方式,需要在環境變量中先設置這兩個值。 * 你也可以直接在代碼中寫死密鑰對,但是小心不要將代碼復制、上傳或者分享給他人, * 以免泄露密鑰對危及你的財產安全。 * CAM密匙查詢: https://console.cloud.tencent.com/cam/capi*/ Credential cred = new Credential(SmsConstant.SECRETID, SmsConstant.SECRETKEY); // 實例化一個http選項,可選,沒有特殊需求可以跳過 HttpProfile httpProfile = new HttpProfile(); // 設置代理 // httpProfile.setProxyHost("真實代理ip"); // httpProfile.setProxyPort(真實代理端口); /* SDK默認使用POST方法。 * 如果你一定要使用GET方法,可以在這裡設置。GET方法無法處理一些較大的請求 */ httpProfile.setReqMethod("POST"); /* SDK有默認的超時時間,非必要請不要進行調整 * 如有需要請在代碼中查閱以獲取最新的默認值 */ httpProfile.setConnTimeout(60); /* SDK會自動指定域名。通常是不需要特地指定域名的,但是如果你訪問的是金融區的服務 * 則必須手動指定域名,例如sms的上海金融區域名: 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); /* 實例化要請求產品(以sms為例)的client對象 * 第二個參數是地域信息,可以直接填寫字符串ap-guangzhou,或者引用預設的常量 */ SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile); /* 實例化一個請求對象,根據調用的接口和實際情況,可以進一步設置請求參數 * 你可以直接查詢SDK源碼確定接口有哪些屬性可以設置 * 屬性可能是基本類型,也可能引用瞭另一個數據結構 * 推薦使用IDE進行開發,可以方便的跳轉查閱各個接口和數據結構的文檔說明 */ SendSmsRequest req = new SendSmsRequest(); /* 填充請求參數,這裡request對象的成員變量即對應接口的入參 * 你可以通過官網接口文檔或跳轉到request對象的定義處查看請求參數的定義 * 基本類型的設置: * 幫助鏈接: * 短信控制臺: 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); /* 短信簽名內容: 使用 UTF-8 編碼,必須填寫已審核通過的簽名,簽名信息可登錄 [短信控制臺] 查看 */ String signName = SmsConstant.SIGNNAME; req.setSignName(signName); /* 國際/港澳臺短信 SenderId: 國內短信填空,默認未開通,如需開通請聯系 [sms helper] */ String senderid = ""; req.setSenderId(senderid); /* 用戶的 session 內容: 可以攜帶用戶側 ID 等上下文信息,server 會原樣返回 */ String sessionContext = "xxx"; req.setSessionContext(sessionContext); /* 短信號碼擴展號: 默認未開通,如需開通請聯系 [sms helper] */ String extendCode = ""; req.setExtendCode(extendCode); /* 模板 ID: 必須填寫已審核通過的模板 ID。模板ID可登錄 [短信控制臺] 查看 */ String templateId = SmsConstant.TEMPLATEID; req.setTemplateId(templateId); /* 下發手機號碼,采用 E.164 標準,+[國傢或地區碼][手機號] * 示例如:+8613711112222, 其中前面有一個+號 ,86為國傢碼,13711112222為手機號,最多不要超過200個手機號 */ String[] phoneNumberSet = {"+86" + phoneNumber}; req.setPhoneNumberSet(phoneNumberSet); /* 模板參數: 若無模板參數,則設置為空 */ String[] templateParamSet = {verificationCode}; req.setTemplateParamSet(templateParamSet); /* 通過 client 對象調用 SendSms 方法發起請求。註意請求方法名與請求對象是對應的 * 返回的 res 是一個 SendSmsResponse 類的實例,與請求對象對應 */ SendSmsResponse res = client.SendSms(req); // 輸出json格式的字符串回包 System.out.println(SendSmsResponse.toJsonString(res)); // 也可以取出單個值,你可以通過官網接口文檔或跳轉到response對象的定義處查看返回字段的定義 System.out.println(res.getRequestId()); } catch (TencentCloudSDKException e) { e.printStackTrace(); } } }
到此這篇關於Spring Boot騰訊雲短信申請與使用的文章就介紹到這瞭,更多相關Spring Boot騰訊雲短信內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Spring中使用騰訊雲發送短信驗證碼的實現示例
- springboot2.x 接入阿裡雲市場短信發送的實現
- springboot如何使用@ConfigurationProperties封裝配置文件
- Unity實現紅酒識別的示例代碼
- Unity接入百度AI實現貨幣識別