之前的兩篇文章介紹的是云片和短信驗證碼的基礎(chǔ)知識呕臂,包括簽名、模板等短信業(yè)務(wù)中的常見知識肪跋。也包括初級的手動群發(fā)短信等歧蒋。
第一篇:四步搞定短信驗證碼
第二篇: 如何搞定短信驗證碼簽名和模板
下面開始介紹的是如何利用機(jī)器完成批量操作,將短信業(yè)務(wù)自動化州既。
獲取APIKEY
云片網(wǎng)提供了完整的SDK和API谜洽,可以幫助開發(fā)者快速完成業(yè)務(wù)開發(fā)。
在開始Coding前吴叶,需要先獲取APIKEY阐虚,如下所示。
點擊眼睛按鈕后蚌卤,輸入驗證碼实束,就可以查看APIKEY了。
這里需要說明的是逊彭,APIKEY特別重要咸灿,一定要保護(hù)好它,避免泄露侮叮。云片這邊提供了幾重保護(hù)機(jī)制避矢,例如驗證、敏感處理囊榜、子賬號獨立APIKEY等审胸,看得出來他們的安全意識還是挺不錯的。
開始Coding
有了APIKEY卸勺,就可以直接開始Coding了歹嘹。
最主要的接口就是這三個,單條發(fā)送接口孔庭、批量發(fā)送接口、批量個性化發(fā)送接口材蛛。搞清楚這三個接口后圆到,其它的開發(fā)基本就是信手拈來了。
單條發(fā)送接口
* 單條短信發(fā)送,智能匹配短信模板
*
* @param apikey 成功注冊后登錄云片官網(wǎng),進(jìn)入后臺可查看
* @param text 需要使用已審核通過的模板或者默認(rèn)模板
* @param mobile 接收的手機(jī)號,僅支持單號碼發(fā)送
* @return json格式字符串
*/
public static String singleSend(String apikey, String text, String mobile) {
Map<String, String> params = new HashMap<String, String>();//請求參數(shù)集合
params.put("apikey", apikey);
params.put("text", text);
params.put("mobile", mobile);
return post("https://sms.yunpian.com/v2/sms/single_send.json", params);//請自行使用post方式請求,可使用Apache HttpClient
}
這其中卑吭,APIKEY是從云片后臺獲得的芽淡。
例如我要給1888888888這個號碼發(fā)送,代碼如下:
String apikey = fx33mio3561dah34jdk748vz9dkfjkd373zdfg28df43dfhjadj;
String text = "[云片網(wǎng)] 您的短信驗證碼是 1234";
String mobile = 18888888888豆赏;
testSendSms(apikey, text, mobile);
這樣一條短信就發(fā)送出去了挣菲。詳細(xì)的介紹可以看這里富稻。
批量發(fā)送接口
也可以給多個手機(jī)號發(fā)送相同內(nèi)容的短信,代碼如下:
/**
* 批量發(fā)送短信,相同內(nèi)容多個號碼,智能匹配短信模板
*
* @param apikey 成功注冊后登錄云片官網(wǎng),進(jìn)入后臺可查看
* @param text 需要使用已審核通過的模板或者默認(rèn)模板
* @param mobile 接收的手機(jī)號,多個手機(jī)號用英文逗號隔開
* @return json格式字符串
*/
public static String batchSend(String apikey, String text, String mobile) {
Map<String, String> params = new HashMap<String, String>();//請求參數(shù)集合
params.put("apikey", apikey);
params.put("text", text);
params.put("mobile", mobile);
return post("https://sms.yunpian.com/v2/sms/batch_send.json", params);//請自行使用post方式請求,可使用Apache HttpClient
}
多個手機(jī)號之間使用逗號分隔白胀,mobile可以這樣賦值
String mobile = "1888888888, 1234567890, 9876543210"
詳細(xì)的說明可以參看這里椭赋。
批量個性化發(fā)送接口
很多時候,我們遇到的需求沒有那么簡單或杠,經(jīng)常要給不同的手機(jī)號發(fā)送不同的內(nèi)容哪怔,而云片也提供了對應(yīng)的API。
/**
* 批量個性化發(fā)送
*/
public static String multiSend() throws UnsupportedEncodingException {
Map<String, String> params = new HashMap<String, String>();//請求參數(shù)集合
params.put("apikey", "your apikey");
params.put("text", java.net.URLEncoder.encode("【云片網(wǎng)】您的驗證碼是1234", "UTF-8") + ","
+ java.net.URLEncoder.encode("【云片網(wǎng)】您的登錄碼是8888", "UTF-8"));
params.put("mobile", "13812345678,18888888888");
return post("https://sms.yunpian.com/v2/sms/multi_send.json", params);//請自行使用post方式請求,可使用Apache HttpClient
}
上面這段代碼的結(jié)果就是第一條短信"【云片網(wǎng)】您的驗證碼是1234"發(fā)給了13812345678向抢,第二條短信"【云片網(wǎng)】您的登錄碼是8888"發(fā)給了18888888888认境,當(dāng)然這樣的實現(xiàn)方式還是看起來很蠢,不過不用擔(dān)心挟鸠,云片網(wǎng)還提供了變量模板叉信,只要替換模板中對應(yīng)的變量部分,就可以輕松實現(xiàn)給多個號碼發(fā)送不同的短信內(nèi)容艘希,關(guān)于變量模板硼身,以后可以再多聊聊,反正他完美執(zhí)行了設(shè)計模式中OCP原則枢冤,簡直經(jīng)典鸠姨。
更詳細(xì)的介紹,可以看這里淹真。
這篇文章主要用的是Java實現(xiàn)短信驗證碼讶迁,以后還會寫一篇PHP實現(xiàn)短信驗證碼的,如果等不及了核蘸,云片的文檔中也有對PHP的說明巍糯,可以先睹為快。