java集成阿里短信平臺(tái)

一滑黔、申請(qǐng)阿里的賬號(hào),并登陸

圖片.png

二、點(diǎn)擊進(jìn)入控制臺(tái)

圖片.png

點(diǎn)擊使用短信服務(wù)

圖片.png

進(jìn)入短信服務(wù)概覽頁(yè)面

圖片.png

點(diǎn)擊短信服務(wù)下方的javaapi文檔环揽,按照其步驟進(jìn)行操作

圖片.png

文檔中含有編寫樣例程序如下:

//設(shè)置超時(shí)時(shí)間-可自行調(diào)整
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
//初始化ascClient需要的幾個(gè)參數(shù)
final String product = "Dysmsapi";//短信API產(chǎn)品名稱(短信產(chǎn)品名固定略荡,無(wú)需修改)
final String domain = "dysmsapi.aliyuncs.com";//短信API產(chǎn)品域名(接口地址固定,無(wú)需修改)
//替換成你的AK
final String accessKeyId = "yourAccessKeyId";//你的accessKeyId,參考本文檔步驟2
final String accessKeySecret = "yourAccessKeySecret";//你的accessKeySecret歉胶,參考本文檔步驟2
//初始化ascClient,暫時(shí)不支持多region
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
 //組裝請(qǐng)求對(duì)象
 SendSmsRequest request = new SendSmsRequest();
 //使用post提交
 request.setMethod(MethodType.POST);
 //必填:待發(fā)送手機(jī)號(hào)汛兜。支持以逗號(hào)分隔的形式進(jìn)行批量調(diào)用,批量上限為1000個(gè)手機(jī)號(hào)碼,批量調(diào)用相對(duì)于單條調(diào)用及時(shí)性稍有延遲,驗(yàn)證碼類型的短信推薦使用單條調(diào)用的方式
 request.setPhoneNumbers("1500000000");
 //必填:短信簽名-可在短信控制臺(tái)中找到
 request.setSignName("云通信");
 //必填:短信模板-可在短信控制臺(tái)中找到
 request.setTemplateCode("SMS_1000000");
 //可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗(yàn)證碼為${code}"時(shí),此處的值為
 //友情提示:如果JSON中需要帶換行符,請(qǐng)參照標(biāo)準(zhǔn)的JSON協(xié)議對(duì)換行符的要求,比如短信內(nèi)容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會(huì)導(dǎo)致JSON在服務(wù)端解析失敗
 request.setTemplateParam("{\"name\":\"Tom\", \"code\":\"123\"}");
 //可選-上行短信擴(kuò)展碼(無(wú)特殊需求用戶請(qǐng)忽略此字段)
 //request.setSmsUpExtendCode("90997");
 //可選:outId為提供給業(yè)務(wù)方擴(kuò)展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
 request.setOutId("yourOutId");
//請(qǐng)求失敗這里會(huì)拋ClientException異常
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
//請(qǐng)求成功
}

下面進(jìn)行整合:
第一步通今、創(chuàng)建我們的maven工程粥谬,在pom.xml中導(dǎo)入我們阿里大于的依賴包肛根,以及相關(guān)的依賴:
<dependencies>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<optional>true</optional>
<version>3.2.3</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</build>
第二部、打開我們下載的SDK漏策,

圖片.png

找到我們的com文件派哲,將其復(fù)制到我們的


圖片.png

路徑下面

第二部:創(chuàng)建SendMessage類,將阿里的短信模板整合掺喻,以發(fā)送驗(yàn)證碼為例

圖片.png

package cn.bos.send.msg;

import java.util.Date;
import java.util.ResourceBundle;

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.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.aliyuncs.profile.IClientProfile;

public class SendMessage {
//產(chǎn)品名稱:云通信短信API產(chǎn)品,開發(fā)者無(wú)需替換
static final String product = "Dysmsapi";
//產(chǎn)品域名,開發(fā)者無(wú)需替換
static final String domain = "dysmsapi.aliyuncs.com";

public static SendSmsResponse sendSms(String phone,String code) throws Exception, ClientException  {
    //獲取配置文件對(duì)象
    ResourceBundle bundle = ResourceBundle.getBundle("accessKey");
    //獲取配置文件內(nèi)容
    //獲取key
    final String accessKeyId  = bundle.getString("accessKeyId");
    //獲取密鑰
    final String accessKeySecret = bundle.getString("accessKeySecret");
    //獲取短信簽名
    String signName =  bundle.getString("signName");
    //獲取短信模板
    String templateCode = bundle.getString("templateCode");
    
    //可自助調(diào)整超時(shí)時(shí)間
    System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
    System.setProperty("sun.net.client.defaultReadTimeout", "10000");

    //初始化acsClient,暫不支持region化
    IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
    DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
    IAcsClient acsClient = new DefaultAcsClient(profile);
    //組裝請(qǐng)求對(duì)象-具體描述見控制臺(tái)-文檔部分內(nèi)容
    SendSmsRequest request = new SendSmsRequest();
    //必填:待發(fā)送手機(jī)號(hào)
    request.setPhoneNumbers(phone);
    //必填:短信簽名-可在短信控制臺(tái)中找到
    request.setSignName(signName);
    //必填:短信模板-可在短信控制臺(tái)中找到
    request.setTemplateCode(templateCode);
    //可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗(yàn)證碼為${code}"時(shí),此處的值為
  
     request.setTemplateParam("{\"number\":\""+code+"\"}");

    
    //尊敬的${name}用戶您好芭届,您的快遞正在路上飛奔,將于${time}送到您的手上
    // request.setTemplateParam("{\"name\":\""+code+"\"},{\"time\":\""+time+"\"}");

   
    //可選:outId為提供給業(yè)務(wù)方擴(kuò)展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
   // request.setOutId("yourOutId");
    System.out.println(accessKeyId);
    System.out.println(accessKeySecret);
    //hint 此處可能會(huì)拋出異常感耙,注意catch
    SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
    return sendSmsResponse;

   
}

測(cè)試:
public static void main(String[] args) throws Exception {
sendSms("電話號(hào)碼","驗(yàn)證碼")褂乍;
}

第三部,創(chuàng)建我們的accessKeyproperites文件即硼,
accessKeyId = XXXXXXX
accessKeySecret =XXXXXXXXXX
signName=Xxx
templateCode=XXXXX #短信模板名稱逃片,根據(jù)需要引入相關(guān)的短信模板
templatemessage=xxxXX #短信模板名稱
templatemessageToStaff=XXXXX #短信模板名稱

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末兴想,一起剝皮案震驚了整個(gè)濱河市摘符,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌讲衫,老刑警劉巖层皱,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件性锭,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡叫胖,警方通過(guò)查閱死者的電腦和手機(jī)草冈,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)瓮增,“玉大人怎棱,你說(shuō)我怎么就攤上這事”僚埽” “怎么了拳恋?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)砸捏。 經(jīng)常有香客問(wèn)我谬运,道長(zhǎng),這世上最難降的妖魔是什么垦藏? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任梆暖,我火速辦了婚禮,結(jié)果婚禮上掂骏,老公的妹妹穿的比我還像新娘轰驳。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布级解。 她就那樣靜靜地躺著冒黑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蠕趁。 梳的紋絲不亂的頭發(fā)上薛闪,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音俺陋,去河邊找鬼。 笑死昙篙,一個(gè)胖子當(dāng)著我的面吹牛腊状,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播苔可,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缴挖,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了焚辅?” 一聲冷哼從身側(cè)響起映屋,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎同蜻,沒想到半個(gè)月后棚点,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湾蔓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年瘫析,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片默责。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡贬循,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出桃序,到底是詐尸還是另有隱情杖虾,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布媒熊,位于F島的核電站奇适,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏泛释。R本人自食惡果不足惜滤愕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望怜校。 院中可真熱鬧间影,春花似錦、人聲如沸茄茁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至付燥,卻和暖如春宣谈,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背键科。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工闻丑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人勋颖。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓嗦嗡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親饭玲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侥祭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)茄厘,斷路器矮冬,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 工作到現(xiàn)在快要1年半了,一直沒有時(shí)間自己從頭搭建個(gè)框架,這個(gè)周末實(shí)在是無(wú)聊,真的不想打lol了,(黑色玫瑰開黑的喊...
    MacSam閱讀 6,163評(píng)論 7 20
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評(píng)論 6 342
  • 我jdk版本是1.7.0_95,在網(wǎng)上查了一下1.7屬于java7maven3.3+版本都支持java7,所以我使...
    liangxifeng833閱讀 1,271評(píng)論 0 2
  • 想得到的東西很多時(shí)候是暫時(shí)的不到的次哈,但可以創(chuàng)造出來(lái) 很多時(shí)候不是沒有胎署,而是無(wú)意識(shí)。 我害怕要求亿乳,害怕壓力硝拧,那就得把...
    漂亮豬伯爵閱讀 370評(píng)論 0 2