package open.dolphin.adm20; import com.plivo.helper.api.client.RestAPI; import com.plivo.helper.api.response.message.MessageResponse; import com.plivo.helper.exception.PlivoException; import java.util.LinkedHashMap; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author kazushi Minagawa. */ public class PlivoSender { private static final String AUTH_ID = "MAOWU0NWU1MZC4NJK5MT"; private static final String AUTH_TOKEN = "MmM4NzYwYmVhYjZhN2I4MTJhNGVmN2NmMzkyNTc1"; private static final String SRC_NUMBER = "14159681855"; private String authId = AUTH_ID; private String authToken = AUTH_TOKEN; private String srcNumber = SRC_NUMBER; public PlivoSender() { } public void send(List<String> list, String message) throws SMSException { // 送信先 StringBuilder sb = new StringBuilder(); for (String number : list) { String[] params = number.split("\\s*-\\s*"); if (params.length==4) { // +81-090-4667-6797 -> 819046676797 String test = params[0]; test = (test.startsWith("+")) ? test.substring(1) : test; String test2 = params[1]; test2 = (test2.startsWith("0")) ? test2.substring(1) : test2; sb.append(test).append(test2).append(params[2]).append(params[3]).append("<"); } else if (params.length==3) { // 090-4667-6797 -> 819046676797 String test = params[0]; test = (test.startsWith("0")) ? test.substring(1) : test; sb.append("81").append(test).append(params[1]).append(params[2]).append("<"); } } // Trim last < int len = sb.length(); sb.setLength(len-1); String dest = sb.toString(); // API RestAPI api = new RestAPI(getAuthId(), getAuthToken(), "v1"); LinkedHashMap<String, String> parameters = new LinkedHashMap(); parameters.put("src", getSrcNumber()); parameters.put("dst", dest); parameters.put("text", message); try { MessageResponse msgResponse = api.sendMessage(parameters); info(msgResponse.apiId); if (msgResponse.serverCode == 202) { info("SMS success " + msgResponse.messageUuids.get(0)); } else { warn("SMS error " + msgResponse.error); throw new SMSException(msgResponse.error); } } catch (PlivoException e) { warn(e.getLocalizedMessage()); throw new SMSException(e.getLocalizedMessage()); } } private void info(String msg) { Logger.getLogger(this.getClass().getName()).log(Level.INFO, msg); } private void warn(String msg) { Logger.getLogger(this.getClass().getName()).log(Level.INFO, msg); } public String getAuthId() { return authId; } public void setAuthId(String authId) { this.authId = authId; } public String getAuthToken() { return authToken; } public void setAuthToken(String authToken) { this.authToken = authToken; } public String getSrcNumber() { return srcNumber; } public void setSrcNumber(String srcNumber) { this.srcNumber = srcNumber; } }