阿里雲---新的簡訊服務(整合到訊息服務MNS後)
阿新 • • 發佈:2019-02-05
1、阿里雲簡訊服務已經整合到訊息服務MNS中了,需要使用MNS的sdk來發送簡訊。
2、新的sdk地址
JAVA SDK:https://help.aliyun.com/document_detail/51063.html
Python SDK:https://help.aliyun.com/document_detail/51372.html
C# SDK:https://help.aliyun.com/document_detail/52016.html
PHP SDK: https://help.aliyun.com/document_detail/51929.html
3、接下來將講解新的簡訊服務demo開發,結尾有原始碼
準備工作:
/**********需要準備的引數**************/ public static String YourAccessId="";//需要修改 public static String YourAccessKeySecret="";//需要修改 //Endpoint 需要修改 public static String YourMNSEndpoint="https://14342555.mns.cn-hangzhou.aliyuncs.com/"; public static String YourTopic="sms.topic-cn-hangzhou";//主題名稱 選擇性修改 public static String YourSMSTemplateCode="SMS_49290109";//簡訊模板code 需要修改 public static String YourSignName="";//簡訊簽名名稱, 需要修改 public static String phone1="15575902020";//手機號碼需要修改 public static String phone2="15575905959";//手機號碼需要修改 /**********需要準備的引數**************/
4、獲取Endpoint
5、獲取主題名稱
6、
建立和檢視Access Key
https://ak-console.aliyun.com/#/accesskey/7、YourSignName 和 YourSMSTemplateCode 獲取在前面的文章有提到
8、demo
package com.kp.test; import com.aliyun.mns.client.CloudAccount; import com.aliyun.mns.client.CloudTopic; import com.aliyun.mns.client.MNSClient; import com.aliyun.mns.common.ServiceException; import com.aliyun.mns.model.BatchSmsAttributes; import com.aliyun.mns.model.MessageAttributes; import com.aliyun.mns.model.RawTopicMessage; import com.aliyun.mns.model.TopicMessage; /** * @author: py * @version:2017年5月4日 下午2:57:31 * com.kp.test.TestNewSms.java * @Desc */ public class TestNewSms { /**********需要準備的引數**************/ public static String YourAccessId="";//需要修改 public static String YourAccessKeySecret="";//需要修改 //Endpoint 需要修改 public static String YourMNSEndpoint="https://14342555.mns.cn-hangzhou.aliyuncs.com/"; public static String YourTopic="sms.topic-cn-hangzhou";//主題名稱 選擇性修改 public static String YourSMSTemplateCode="SMS_49290109";//簡訊模板code 需要修改 public static String YourSignName="";//簡訊簽名名稱, 需要修改 public static String phone1="15575902020";//手機號碼需要修改 public static String phone2="15575905959";//手機號碼需要修改 /**********需要準備的引數**************/ public static void main(String[] args) { /** * Step 1. 獲取主題引用 */ CloudAccount account = new CloudAccount(YourAccessId, YourAccessKeySecret, YourMNSEndpoint); MNSClient client = account.getMNSClient(); CloudTopic topic = client.getTopicRef(YourTopic); /** * Step 2. 設定SMS訊息體(必須) * * 注:目前暫時不支援訊息內容為空,需要指定訊息內容,不為空即可。 */ RawTopicMessage msg = new RawTopicMessage(); msg.setMessageBody("sms-message"); /** * Step 3. 生成SMS訊息屬性 */ MessageAttributes messageAttributes = new MessageAttributes(); BatchSmsAttributes batchSmsAttributes = new BatchSmsAttributes(); // 3.1 設定傳送簡訊的簽名(SMSSignName) batchSmsAttributes.setFreeSignName(YourSignName); // 3.2 設定傳送簡訊使用的模板(SMSTempateCode) batchSmsAttributes.setTemplateCode(YourSMSTemplateCode); // 3.3 設定傳送簡訊所使用的模板中引數對應的值(在簡訊模板中定義的,沒有可以不用設定) BatchSmsAttributes.SmsReceiverParams smsReceiverParams = new BatchSmsAttributes.SmsReceiverParams(); smsReceiverParams.setParam("code", "2323"); smsReceiverParams.setParam("product", getChinaDateByMM(System.currentTimeMillis())); // 3.4 增加接收簡訊的號碼 batchSmsAttributes.addSmsReceiver(phone1, smsReceiverParams); // batchSmsAttributes.addSmsReceiver(phone2, smsReceiverParams); messageAttributes.setBatchSmsAttributes(batchSmsAttributes); try { /** * Step 4. 釋出SMS訊息 */ TopicMessage ret = topic.publishMessage(msg, messageAttributes); System.out.println("MessageId: " + ret.getMessageId()); System.out.println("MessageMD5: " + ret.getMessageBodyMD5()); } catch (ServiceException se) { System.out.println(se.getErrorCode() + se.getRequestId()); System.out.println(se.getMessage()); se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } client.close(); } /** * 使用毫秒轉換為中文日期 * @param tmpDateInt * @return */ public static String getChinaDateByMM(long time){ String ret_date = ""; java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy年MM月dd日"); ret_date = formatter.format(time); return ret_date; } }
9、工程結構
10、原始碼地址