下面開始介紹的是如何利用機器完成批量操作,將短信業務自動化。
獲取APIKEY
云片網提供了完整的SDK和API,可以幫助開發者快速完成業務開發。
在開始Coding前,需要先獲取APIKEY,如下所示。
獲取APIKEY
點擊眼睛按鈕后,輸入驗證碼,就可以查看APIKEY了。
這里需要說明的是,APIKEY特別重要,一定要保護好它,避免泄露。云片這邊提供了幾重保護機制,例如驗證、敏感處理、子賬號獨立APIKEY等,看得出來他們的安全意識還是挺不錯的。
開始Coding
有了APIKEY,就可以直接開始Coding了。
最主要的接口就是這三個,單條發送接口、批量發送接口、批量個性化發送接口。搞清楚這三個接口后,其它的開發基本就是信手拈來了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
* 單條短信發送,智能匹配短信模板 * * @param apikey 成功注冊后登錄云片官網,進入后臺可查看 * @param text 需要使用已審核通過的模板或者默認模板 * @param mobile 接收的手機號,僅支持單號碼發送 * @return json格式字符串 */ public static String singleSend(String apikey, String text, String mobile) { Map<String, String> params = new HashMap<String, String>(); //請求參數集合 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這個號碼發送,代碼如下:
1
2
3
4
|
String apikey = fx33mio3561dah34jdk748vz9dkfjkd373zdfg28df43dfhjadj; String text = "[云片網] 您的短信驗證碼是 1234" ; String mobile = 18888888888 ; testSendSms(apikey, text, mobile); |
這樣一條短信就發送出去了。詳細的介紹可以看這里。
也可以給多個手機號發送相同內容的短信,代碼如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
/** * 批量發送短信,相同內容多個號碼,智能匹配短信模板 * * @param apikey 成功注冊后登錄云片官網,進入后臺可查看 * @param text 需要使用已審核通過的模板或者默認模板 * @param mobile 接收的手機號,多個手機號用英文逗號隔開 * @return json格式字符串 */ public static String batchSend(String apikey, String text, String mobile) { Map<String, String> params = new HashMap<String, String>(); //請求參數集合 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 } |
多個手機號之間使用逗號分隔,mobile可以這樣賦值
1
|
String mobile = "1888888888, 1234567890, 9876543210" |
詳細的說明可以參看這里。
很多時候,我們遇到的需求沒有那么簡單,經常要給不同的手機號發送不同的內容,而云片也提供了對應的API。
1
2
3
4
5
6
7
8
9
10
11
|
/** * 批量個性化發送 */ public static String multiSend() throws UnsupportedEncodingException { Map<String, String> params = new HashMap<String, String>(); //請求參數集合 params.put( "apikey" , "your apikey" ); params.put( "text" , java.net.URLEncoder.encode( "【云片網】您的驗證碼是1234" , "UTF-8" ) + "," + java.net.URLEncoder.encode( "【云片網】您的登錄碼是8888" , "UTF-8" )); params.put( "mobile" , "13812345678,18888888888" ); return post( "https://sms.yunpian.com/v2/sms/multi_send.json" , params);//請自行使用post方式請求,可使用Apache HttpClient } |
上面這段代碼的結果就是第一條短信"【云片網】您的驗證碼是1234"發給了13812345678,第二條短信"【云片網】您的登錄碼是8888"發給了18888888888,當然這樣的實現方式還是看起來很蠢,不過不用擔心,云片網還提供了變量模板,只要替換模板中對應的變量部分,就可以輕松實現給多個號碼發送不同的短信內容,關于變量模板,以后可以再多聊聊,反正他完美執行了設計模式中OCP原則,簡直經典。
更詳細的介紹,可以看這里。
這篇文章主要用的是Java實現短信驗證碼,以后還會寫一篇PHP實現短信驗證碼的,如果等不及了,云片的文檔中也有對PHP的說明,可以先睹為快。
原文鏈接:http://www.jianshu.com/p/6aa21e691337