7. 예약 메시지 취소
개요
예약 등록한 일괄 푸시 혹은 타겟팅 푸시를 취소하는 방법입니다.
동일한 URL에 mode 구분값(DEFT/STOS)으로 일괄 예약 푸시 혹은 타겟팅 예약 푸시를 취소할 수 있습니다.
API Server URL: https://api-v2.fingerpush.com/rest/sts/v4/cnclPush.jsp
처리 방법 및 전송/수신 파라미터 정의
HTTPS Parameters
SSL Protocol을 이용하여 파라미터들을 API Server에 전달합니다. API Server로 전달해야 할 파라미터들은 아래 표를 참조해 주세요.
[표 6.1] 푸시 예약 취소 HTTPS, Parameters
파라미터명 | 필수 여부 | Byte 수 | 설명 |
---|---|---|---|
appkey | 필수 | - | Application key |
appsecret | 필수 | - | Application Secret |
customerkey | 필수 | - | Customer key |
mode | 필수 | - | 푸시 메시지 유형 DEFT: 일괄, 태그 푸시 STOS: 타겟팅 푸시 |
msgidx | 선택 | - | 푸시 등록 후 반환 받은 메시지 번호 |
Response JSON
API서버에서 전달 받은 파라미터 처리 후 결과를 JSON 형태로 제공합니다.
[표 6.2] 발송 JSON 결과
값 | 설명 |
---|---|
result | 결과 코드 |
message | 결과 메시지 |
msgidx | 등록된 메시지 번호. 결과 조회 시 사용 ex) DEF_40213134 |
msgstate | 메시지 상태(발송완료/메시지 입력 중/발송 대기/발송중/발송 실패/일시 정지 처리 중/발송 중 일시 정지) |
처리결과에 따른 result 값은 아래와 같습니다.
[표 6.3] 발송 JSON 결과의 result code 유형
코드 | 내용 | 비고 |
---|---|---|
200 | 정상처리 됨 | 취소 완 |
4031 | 유효하지 않은 appkey 혹은 appsecret |
|
4032 | Server to Server 서비스 이용권한 없음 |
|
4033 | 해당 메시지에 대한 접근 권한 없음 | 해당 앱에서 발송한 메시지가 아님 |
4044 | -이미 발송 취소된 메시지입니다. -이미 발송 완료된 메시지입니다. -이미 발송중인 메시지 이므로 취소하실 수 없습니다. -이미 발송 실패한 메시지 이므로 취소하실 수 없습니다. -현재 일시 정지 처리 중이므로 취소하실 수 없습니다. 일시 정지가 완료된 후 다시 시도해 주세요. | 메시지 상태가 취소 불가능한 상태 |
500 | 서버 에러 | |
503 | 필수 값이 누락됨 | message에 누락된 필수값 표시됨. 혹은 메시지 번호 유형이 잘못된 경우 |
504 | 발송 대상 처리 중 에러 | 발송 대상 데이터 확인 |
샘플 소스 설명
HTTPS로 미리 정의된 파라미터들을 전달하고 JSON으로 결과 데이터를 읽을 수 있도록 작업해 주시면 됩니다.
JAVA용 샘플의 경우 Apache common의 HttpClient(http://hc.apache.org/)를 이용하여 파라미터를 전송하도록 하였으므로 해당 library가 필요합니다.
샘플 소스는 GitHub를 통해 확인 가능합니다.
JSP 샘플의 경우, 샘플 메소드를 이용한 직접 발송이 가능합니다. 혹, 사용자 환경에 맞도록 수정이 필요하면 class(com.fingerpush.push.FingerpushDaoImpl)내에 구성되어 있는 메소드를 참조해 주시기 바랍니다.
해당 샘플에 대한 설명은 파라미터 전달 및 API URL에 대해 클래스 내에 구현되어 있는 로직 위주로 설명 드립니다.
JAVA Version
Github에 올려져 있는 샘플 소스는 아래 설명된 내용 중 중복된 부분들을 method화 하여 처리하므로 약간의 차이가 있을 수 있으나, 기본 발송 방식의 설명이므로 해당 중복되는 부분을 풀어서 설명하도록 하겠습니다.
1) 파라미터를 담을 List 객체를 선언해 전달할 값들을 셋팅 합니다.
2) 필수값들을 셋팅 합니다.
3) 기존 HttpClient의 DefaultHttpClient를 이용한 원격 접속 방식이 deprecated 된 이유로 httpsURLConnection을 이용하여 접속합니다. 물론 deprecated 되었다고 해서 DefaultHttpClient 방식이 동작하지 않는 것은 아닙니다. 해당 방식 역시 github에 올려져 있는 샘플 소스에 구현되어 있습니다.
예제: FingerpushDaoImpl.sendHttpsExe(String callUrl, List <BasicNameValuePair> params)
전달하는 파라미터는 UTF-8로 인코딩 하여 전달해야 합니다.
예제: 샘플의 FingerpushDaoImpl.sendHttpsUrlConExe(String callUrl, List <BasicNameValuePair> params)
API Server URL: https://api-v2.fingerpush.com/rest/sts/v4/cnclPush.jsp
4) 받은 결과는 JSON 타입의 String이므로 결과에 맞게 변환하여 사용하시는 UI에 적용하시면 됩니다. 받은 jsonString은 앞서 설명한 ‘Response JSON’ 부분을 참조해 주세요.
※ JAVA Version 예약메시지 취소 샘플
소스 주소 | |
class | com.fingerpush.push.FingerpushDao com.fingerpush.push.FingerpushDaoImpl com.fingerpush.push.PushVO |
jsp | JSP/cnclPush.jsp |
PHP Version
Github에 올려져 있는 샘플 소스는 아래 설명된 내용 중 중복된 부분들을 method화 하여 처리하므로 약간의 차이가 있을 수 있으나, 기본 발송 방식의 설명이므로 해당 중복되는 부분을 풀어서 설명하도록 하겠습니다.
1) 기본 앱 정보를 세팅합니다.
2) 메시지 취소 시 필수 값을 세팅합니다.
3) 앱 기본정보와 옵션값을 URL 인코드 한 쿼리 문자열로 생성합니다.
4) PHP cURL 라이브러리를 이용하여 핑거푸시 API와 통신합니다.
PHP cURL 라이브러리: https://www.php.net/manual/en/book.curl.php
일괄발송 API URL: https://api-v2.fingerpush.com/rest/sts/v4/cnclPush.jsp
cURL을 아래와 같이 HTTPS 통신으로 세팅합니다.
5) 전달 받은 JSON 문자열 결과값을 PHP 변수로 변환합니다.
Last updated