processCode는 푸시 메시지 처리 단계를 표시하는 코드입니다. 단일 발송에서는 큰 의미가 없으나, 500건 이상의 메시지 발송에서는 각 단계별 처리를 위한 코드로 사용됩니다.
처리결과에 따른 result 값은 아래와 같습니다.
[표 4.4] JSON 결과의 processCode code 유형
코드
내용
비고
20001
푸시 메시지 등록 정상 처리
메시지 아이디가 반환됨
20002
발송대상자 등록 정상 처리
20003
푸시 메시지 등록 완료
샘플 소스 설명
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 객체를 선언해 전달할 값들을 셋팅 합니다.
List <BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
2) 필수값들을 셋팅 합니다.
List <BasicNameValuePair> params = new ArrayList<BasicNameValuePair>();
params.add (new BasicNameValuePair("appkey", 애플리케이션 키)); // (필수)
params.add (new BasicNameValuePair("appsecret", 애플리케이션 시크릿)); // (필수)
params.add (new BasicNameValuePair("customerkey", 발급받은 커스터머키)); // (필수)
params.add (new BasicNameValuePair("msg", 푸시메시지 내용)); // 메시지 (필수)
3) 선택 값들을 셋팅 합니다. (선택)
해당 내용들은 Application 개발 시 반영된 내용을 기준으로 처리합니다.
params.add (new BasicNameValuePair("isa", "Y")); // 안드로이드를 사용하는 대상폰 발송 Y/N (필수)
params.add (new BasicNameValuePair("asnd", "")); // 푸시 수신 시 안드로이드 사운드 (선택)
params.add (new BasicNameValuePair("abdg", "")); // 안드로이드 푸시 배지 처리용(선택)
params.add (new BasicNameValuePair("isi", "Y")); // IOS를 사용하는 대상폰 발송 Y/N(필수)
params.add (new BasicNameValuePair("ibdg", "")); // IOS 푸시 배지 처리(선택)
params.add (new BasicNameValuePair("isnd", "")); // IOS 푸시 사운드 처리(선택)
params.add (new BasicNameValuePair("ck1", "")); // custom key 1(선택)
params.add (new BasicNameValuePair("ck2", "")); // custom key 2(선택)
params.add (new BasicNameValuePair("ck3", "")); // custom key 3(선택)
params.add (new BasicNameValuePair("cv1", "")); // custom value 1(선택)
params.add (new BasicNameValuePair("cv2", "")); // custom value 2(선택)
params.add (new BasicNameValuePair("cv3", "")); // custom value 3(선택)
params.add (new BasicNameValuePair("fnm", "")); // 첨부이미지 파일 링크 경로(선택)
params.add (new BasicNameValuePair("title", push.getTitle())); // 제목
params.add (new BasicNameValuePair("bgcolor", "#FF0000")); // 배경 컬러 RGB 값. ex) #FF0000
params.add (new BasicNameValuePair("fcolor", "#4374D9")); // 폰트 컬러 RGB 값. ex) #4374D9
params.add (new BasicNameValuePair("lcode","")); // 메시지 라벨코드: 메시지 라벨관리에서 발급받은 10자리 난수
params.add (new BasicNameValuePair("isetiquette", "Y")); // 에티켓 시간 적용 여부 Y: 적용, N: 적용 안함
params.add (new BasicNameValuePair("etiquette_stime", "20")); // 에티켓 적용 시작 시간 0~23
params.add (new BasicNameValuePair("etiquette_etime", "8")); // 에티켓 적용 해제 시간 0~23
params.add (new BasicNameValuePair("and_priority","H")); // 안드로이드 우선순위 H: 높음 / M: 중간(default)
params.add (new BasicNameValuePair("optagree", "0000")); // 옵션 동의, 0000: 광고수신 비동의 여부에 관계없이 발송, 1000: 광고 수신 동의한 사람에게만 발송
4) 해당 메시지를 받은 대상자를 셋팅 합니다.
params.add (new BasicNameValuePair("identity", 식별자)); // 대상자 식별자 (필수)
5) 기존 HttpClient의 DefaultHttpClient를 이용한 원격 접속 방식이 deprecated 된 이유로 HttpsURLConnection을 이용하여 접속합니다. 물론 deprecated 되었다고 해서 DefaultHttpClient 방식이 동작하지 않는 것은 아닙니다. 해당 방식 역시 github에 올려져 있는 샘플 소스에 구현되어 있습니다.
예제: FingerpushDaoImpl.sendHttpsExe(String callUrl, List <BasicNameValuePair> params))
전달하는 파라미터는 UTF-8로 인코딩 하여 전달해야 합니다.
예제: 샘플의 FingerpushDaoImpl.sendHttpsUrlConExe(String callUrl, List <BasicNameValuePair> params)