阿里短信发送(跟着宝哥学java)
生活随笔
收集整理的這篇文章主要介紹了
阿里短信发送(跟着宝哥学java)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 短信發送
1.1 注冊阿里云
1.2 查找短信服務:創建簽名
1.3 創建模板
1.4 獲取accessKey和accesssKeySecret
1.5 項目中引入依賴
<!--短信發送的依賴--> <!--阿里短信--> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.0.6</version> </dependency> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-dysmsapi --> <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-dysmsapi</artifactId><version>1.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version> </dependency>1.6 發送短信的代碼
package com.zhiyou100.demo02;import com.aliyuncs.DefaultAcsClient; import com.aliyuncs.IAcsClient; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse; import com.aliyuncs.http.MethodType; import com.aliyuncs.profile.DefaultProfile; import com.aliyuncs.profile.IClientProfile;public class TestMessage01 {private static String accessKeyId, accessKeySecret, signName, templateCode;static {accessKeyId = "LTAI5tHxxxxx";accessKeySecret = "2IofAIExxxxx";signName = "跟著寶哥學java";templateCode = "SMS_167050317";//您的注冊碼:${code},如非本人操作,請忽略本短信!}public static void main(String[] args) throws Exception {sendMessage((int)(Math.random()*1000000)+"", "150360xxxx");}public static void sendMessage(String codeValue, String phoneNumber) {// 設置超時時間-可自行調整System.setProperty("sun.net.client.defaultConnectTimeout", "20000");System.setProperty("sun.net.client.defaultReadTimeout", "20000");// 初始化ascClient需要的幾個參數final String product = "Dysmsapi";// 短信API產品名稱(短信產品名固定,無需修改)final String domain = "dysmsapi.aliyuncs.com";// 短信API產品域名(接口地址固定,無需修改)// 初始化ascClient,暫時不支持多region(請勿修改)IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);try {DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);IAcsClient acsClient = new DefaultAcsClient(profile);// 組裝請求對象SendSmsRequest request = new SendSmsRequest();// 使用post提交request.setMethod(MethodType.POST);// 必填:待發送手機號。支持以逗號分隔的形式進行批量調用,批量上限為1000個手機號碼,批量調用相對于單條調用及時性稍有延遲,驗證碼類型的短信推薦使用單條調用的方式;發送國際/港澳臺消息時,接收號碼格式為國際區號+號碼,如“85200000000”request.setPhoneNumbers(phoneNumber);// 必填:短信簽名-可在短信控制臺中找到request.setSignName(signName);// 必填:短信模板-可在短信控制臺中找到,發送國際/港澳臺消息時,請使用國際/港澳臺短信模版request.setTemplateCode(templateCode);// 可選:模板中的變量替換JSON串,如模板內容為"親愛的${name},您的驗證碼為${code}"時,此處的值為// 友情提示:如果JSON中需要帶換行符,請參照標準的JSON協議對換行符的要求,比如短信內容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會導致JSON在服務端解析失敗request.setTemplateParam("{\"code\":\"" + codeValue + "\"}");// 可選-上行短信擴展碼(擴展碼字段控制在7位或以下,無特殊需求用戶請忽略此字段)// request.setSmsUpExtendCode("90997");// 可選:outId為提供給業務方擴展字段,最終在短信回執消息中將此值帶回給調用者request.setOutId("yourOutId");// 請求失敗這里會拋ClientException異常SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {System.out.println("發送成功!");} else {throw new RuntimeException("驗證碼發送失敗!");}} catch (Exception e) {throw new RuntimeException("驗證碼發送失敗!");}} }1.7 注意
2018年后 不允許個人申請簽名
總結
以上是生活随笔為你收集整理的阿里短信发送(跟着宝哥学java)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 世博会介绍手机软件---红舞姬
- 下一篇: 各种被墙的情况下.飞思卡尔-iMx SD