Outbound SMS
Outbound SMS
Prerequisites
- Outbound SMS 서비스를 사용하기 위해서는 ToBeText 가입이 필요합니다.
- TobeText 가입 시 API 의 사용이 가능하도록 Cid 및 token 을 발급하여 드립니다.
- 회원 가입 시 제공되는 소량의 Credit 으로 Outbound SMS 서비스를 테스트 할 수 있습니다.
- Outbound SMS 웹 응용프로그램을 사용 할 수 있는 웹 호스트가 필요합니다.
Post Method
- ToBeText 의 연동 API 는 POST 방식을 사용하여 메시지를 전달 합니다.
Base URL
- ToBeText API Base URL
- http://api-dev.tbnws.com/sms (no SSL)
- http://api-dev.tbnws.com:18443/sms (SSL)
- ToBeText API Backup URL
- http://api2-dev.tbnws.com/sms (no SSL)
- Backup URL 은 평시에는 전송 불가하며, 비상/장애 발생 및 테스트 등의 필요 시 활성화 가동 될 수 있음.
- Backup URL 의 경우 SSL 인증 제공되지 않음.
Required Parameters
Name | Description | Remarks |
---|---|---|
Ckey | 고객의 메시지 ID (고객사 메시지 ID 고유번호), 결과값 전송 시 해당 메시지의 식별 값으로 전달 되는 값 (CKey, MsgId) | 고객사 전달 값 |
RecvNum | 수신자 번호 (ex : +821012341234) | 고객사 전달 값 |
SendNum | 송신자 번호 / 해외 경우 지정된 번호로 자동 변경, 국내 경우 전달된 번호로 전송 | 고객사 전달 값 |
Body | 메시지 내용, 160Byte 이내. (영문 160자, 다국어 포함시 80자) | 고객사 전달 값 |
Cid | 고객사 고유 번호 (ToBeText 제공값) | ToBe 제공 값 |
token | 고객사 인증을 위한 토큰값 (ToBeText 제공값) | ToBe 제공 값 |
Optional Parameters
Name | Description | Remarks |
---|---|---|
callback | 결과 수신을 위한 URL | 고객사 전달 값 |
Outbound SMS Sample Codes
Java
import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import javax.net.ssl.HttpsURLConnection; public class ToBeText { public static void main(String[] args) throws Exception { ToBeText tobe = new ToBeText(); tobe.sendSMS(); } private void sendSMS() throws Exception { String USER_AGENT = "Mozilla/5.0"; String url = "http://api-dev.tbnws.com/sms"; URL obj = new URL(url); HttpURLConnection conn = (HttpURLConnection) obj.openConnection(); // HttpsURLConnection conn = (HttpsURLConnection) obj.openConnection(); // SSL connection conn.setRequestMethod("POST"); conn.setRequestProperty("User-Agent", USER_AGENT); conn.setRequestProperty("Accept-Language", "en-US,en;q=0.5"); StringBuffer urlParameters = new StringBuffer(); urlParameters.append("Ckey=메시지ID"); urlParameters.append("&RecvNum=수신전화번호"); urlParameters.append("&SendNum=발신전화번호"); urlParameters.append("&Body=메시지본문"); urlParameters.append("&Cid=ToBeText에서 발급받은 고객님의 Cid"); urlParameters.append("&token=ToBeText에서 발급받은 고객님의 token"); urlParameters.append("&callback=상태 값 Callback URL"); System.out.println("Request to URL : " + url); System.out.println("\n\nParameters : " + urlParameters); // Send post request conn.setDoOutput(true); DataOutputStream ostream = new DataOutputStream(conn.getOutputStream()); ostream.writeBytes(urlParameters.toString()); ostream.flush(); ostream.close(); int responseCode = conn.getResponseCode(); System.out.println("\n\nResponse Code : " + responseCode); BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String inputLine; StringBuffer response = new StringBuffer(); while ((inputLine = in.readLine()) != null) { response.append(inputLine); } in.close(); System.out.println("\n\nRespose : " + response.toString()); } }
Curl
curl -X POST http://api-dev.tbnws.com/sms -d 'Ckey=메시지ID' -d 'RecvNum=수신전화번호' -d 'SendNum=발신전화번호' -d 'Body=메시지본문' -d 'Cid=ToBeText에서 발급받은 고객님의 Cid' -d 'token=ToBeText에서 발급받은 고객님의 token' -d 'callback=상태 값 Callback URL'
php
<?php $url = 'http://api-dev.tbnws.com/sms'; $post_data["Ckey"] = "메시지ID"; $post_data["RecvNum"] = "수신전화번호"; $post_data["SendNum"] = "발신전화번호"; $post_data["Body"] = "메시지본문"; $post_data["Cid"] = "ToBeText에서 지급한 고객님의 Cid"; $post_data["token"] = "ToBeText 에서 지급한 고객님의 token"; $post_data["callback"] = "상태 값 Callback URL"; $curlsession = curl_init (); curl_setopt ($curlsession, CURLOPT_URL, $url); curl_setopt ($curlsession, CURLOPT_POST, 1); curl_setopt ($curlsession, CURLOPT_POSTFIELDS, $post_data); curl_setopt ($curlsession, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec ($curlsession); var_dump($res); //결과값 출력 curl_close($curlsession); ?>
Instant Response
- ToBe Networks 로 메시지 호출 후 ack 값으로 전달되는 결과 값. XML 형태로 제공되며 Parameter 와 Sample 은 아래 참조.
Return Parameters
Name | Description | Remarks |
---|---|---|
CKey | 고객의 메시지 ID (고객사 메시지 ID 고유번호), 결과값 전송시 해당 메시지의 식별 값으로 전달 되는 값 (CKey, MsgId) | |
Status | 전송 결과 값 | |
MsgId | ToBe Networks 고유 메시지 ID 값 | Char 34 bytes |
SendNum | 송신자 전화 번호 / 해외 경우 지정된 번호로 자동 변경, 국내 경우 전달된 번호로 전송 | |
RecvNum | 수신자 전화 번호 | |
ErrorCode | 고객사 전달용 에러 코드 | |
ErrorMsg | 고객사 전달용 에러 메시지 |
Error Codes
Error Code | Description | Remarks |
---|---|---|
200 | Success | 전송성공 |
410 | Authentication Failed, 인증 실패, Cid 및 token 값 확인 | 전송실패 |
2001 | Ckey 값 오류 | 전송실패 |
2002 | CCode 값 오류 | 전송실패 |
2004 | SendNum 값 오류 | 전송실패 |
2005 | Body field 값 오류 | 전송실패 |
2006 | Cid (고객사 ID) 값 오류 | 전송실패 |
2007 | token 값 오류 | 전송실패 |
Response Sample
<ToBeTextResult> <Status>SUCCESS</Status> <MsgId>41aa33709703dea382c10a057823ffdc</MsgId> <SendNum>821012341234</SendNum> <RecvNum>821012341234</RecvNum> <ErrorCode>200</ErrorCode> <ErrorMsg>Message successfully sent</ErrorMsg> </ToBeTextResult> |
Status Callback
- SMS 전송 결과를 주기적으로 전송. (전송후 약 3분 ~ 30분 이내)
- 메시지 전송 시 입력한 Callback URL 로 회신.
Status Callback URL
- SMS 전송 시 callback Parameter로 전달되는 URL.
예) http://yourdomain.com/recv/
※ http:// 를 포함한 Full Address
Parameters
Name | Description | Remarks |
---|---|---|
CKey | 고객의 메시지 ID (고객사 메시지 ID 고유번호), 결과값 전송시 해당 메시지의 식별 값으로 전달 되는 값 (CKey, MsgId) | |
Status | 전송 결과 값 | |
MsgId | ToBe Networks 고유 메시지 ID 값 | 34byte |
SendNum | 송신자 전화 번호 / 해외 경우 지정된 번호로 자동 변경, 국내 경우 전달된 번호로 전송 | |
RecvNum | 수신자 전화 번호 | |
ErrorCode | 고객사 전달용 에러 코드 | |
ErrorMsg | 고객사 전달용 에러 메시지 |
Error Codes
Error Code | Description | Remarks |
---|---|---|
200 | Success | 전송성공 |
400 | Failed | 전송실패 |
411 | 내부 오류 | 전송실패 |
412 | 기타 | 전송실패 |