개별 발송 메시지에 개별 설정값을 포함한 JSON 형식의 text 문장으로 처리됩니다.
해당 JSON 형식에 문법적 오류가 있다면, 발송 서버에서는 오류로 처리하게 됩니다.
API 호출 경로가 기존 ‘6. 다수의 대상자에게 다른 메시지 발송’과 다르므로 확인해 주셔야 합니다.
{"message":"개별 메시지 내용입니다","ck1":" 커스텀 키1","ck2":" 커스텀 키2","ck3":" 커스텀 키3","cv1":"커스텀 값1","cv2":"커스텀 키 값2","cv3":"커스텀 키 값3","lcode":"메시지라벨코드","and_priority":"H"}
1) 푸시를 받을 대상자 및 메시지(JSON text 형식), 그 외 설정값들을 셋팅 합니다.
한 번에 보내는 대상자는 500건 이하로 해야 합니다.
… …JsonObject msg_n =newJsonObject();msg_n.put("message","n 번째 메시지");msg_n.put("lcode","Esd23faae1");msg_n.put("ck1","");msg_n.put("ck2","");msg_n.put("ck3","");msg_n.put("cv1","");msg_n.put("cv2","");msg_n.put("cv3","");msg_n.put("and_priority","H");params.add (newBasicNameValuePair("identity", 수신받을 대상자의 식별자1)); // (필수)params.add (newBasicNameValuePair("message",msg_1.toJSONString())); // JSON 형식의 보낼 메시지 및 설정값1(필수)params.add (newBasicNameValuePair("prv_attachefname", 수신받을 대상자에게 보낼 이미지1)); // (선택)params.add (newBasicNameValuePair("prv_linkurl", 수신받을 대상자에게 보낼 웹링크1)); // (선택)params.add (newBasicNameValuePair("prv_title", 수신받을 대상자에게 보낼 제목1)); // (선택)params.add (newBasicNameValuePair("identity", 수신받을 대상자의 식별자2)); // (필수)params.add (newBasicNameValuePair("message",msg_2.toJSONString())); // JSON 형식의 보낼 메시지 및 설정값2(필수)params.add (newBasicNameValuePair("prv_attachefname", 수신받을 대상자에게 보낼 이미지2)); // (선택)params.add (newBasicNameValuePair("prv_linkurl", 수신받을 대상자에게 보낼 웹링크2)); // (선택)params.add (newBasicNameValuePair("prv_title", 수신받을 대상자에게 보낼 제목2)); // (선택)… 중략 …params.add (newBasicNameValuePair("identity", 수신받을 대상자의 식별자n)); // (필수)params.add (newBasicNameValuePair("message",msg_n.toJSONString())); // JSON 형식의 보낼 메시지 및 설정값 n(필수)Params.add (newBasicNameValuePair("prv_attachefname", 수신받을 대상자에게 보낼 이미지n)); // (선택)params.add (newBasicNameValuePair("prv_linkurl", 수신받을 대상자에게 보낼 웹링크n)); // (선택)params.add (newBasicNameValuePair("prv_title", 수신받을 대상자에게 보낼 제목n)); // (선택)… …
2) 기존 HttpClient의 DefaultHttpClient를 이용한 원격 접속 방식이 deprecated 된 이유로 HttpsURLConnection을 이용하여 접속합니다. 물론 deprecated 되었다고 해서 DefaultHttpClient 방식이 동작하지 않는 것은 아닙니다. 해당 방식 역시 github에 올려져 있는 샘플 소스에 구현되어 있습니다.
예제: FingerpushDaoImpl.sendHttpsExe(String callUrl, List <BasicNameValuePair> params)
전달하는 파라미터는 UTF-8로 인코딩 하여 전달해야 합니다.
예제: 샘플의 FingerpushDaoImpl.sendHttpsUrlConExe(String callUrl, List <BasicNameValuePair> params)
4) 해당 결과로 받은 내용을 JSON형식으로 받아 파싱한 결과에 따라 다음 프로세스(대상자 발송)를 준비합니다. 샘플 파일에서는 JSON형식의 String 문자열을 JSON Object 로 바꾸어 파싱하기 위해 sourceforge에서 배포하는 JSON-lib (http://sourceforge.net/projects/json-lib/files/)를 사용합니다.
결과값 result : 200, processcode : 20002 에 따라 대상자를 더 보낼 수도 메시지 전송을 마칠 수도 있습니다.
jsonString =sendMessage(strAppkey, strAppSecret, strCustomerKey, strMsg, callUrl);JSONObject jsonObj =JSONObject.fromObject(jsonString);String result = (String)jsonObj.get("result"); // 결과 코드String msgIdx = (String)jsonObj.get("msgIdx"); // 메시지 등록 후 반환되는 메시지 번호String processCode = (String)jsonObj.get("processCode"); // 메시지 발송 단계, 20001 메시지 등록 시작, 20002 대상자 설정, 20003 메시지 설정 완료
String message = (String)jsonObj.get("message"); // 반환된 결과 메시지
PHP Version
1)기본 앱 정보를 세팅합니다.
// 공통 필수 $key =array('appkey'=>'[발급받은 appkey]','appsecret'=>'[발급받은 appsecret]','customerkey'=>'[발급받은 customerkey]',);
2) 푸시를 받을 대상자 및 메시지(JSON text 형식), 그 외 설정값들을 셋팅 합니다.
한 번에 보내는 대상자는 500건 이하로 해야 합니다.
$members = ["member1","member2"];$users =array(http_build_query($key),"msgidx=". $msgidx);for ($i =0; $i <count($members) ; ++$i) {// array 타입 개별 메시지 $message =array("message"=> $members[$i]."_개별 메시지_".$i,// 개별 메시지 (필수)"ck1"=>"","ck2"=>"","ck3"=>"","cv1"=>"","cv2"=>"","cv3"=>"","lcode"=>"","and_priority"=>"H", ); $option =array("identity"=> $members[$i],// identity (필수)"message"=>json_encode($message),// json 타입의 개별메시지 (필수)"prv_attachefname"=>"","prv_linkurl"=>"","prv_title"=>"" ); $users[] =http_build_query($option);}if( !count($users) ) {echojson_encode(array("result"=>"4040","message"=>"전송 대상 정보가 없습니다." ));exit();}