Demo entry 6657403

api

   

Submitted by anonymous on Nov 03, 2017 at 09:18
Language: Java. Code size: 3.7 kB.

package api;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.json.simple.JSONObject;

public class Api {

	private void apiCall()  {

		// 메시지 전송은 한번에 1000개 까지 가능합니다.

		// 수신 번호
		List<String> tels = new ArrayList<String>();
		tels.add("010XXXXXXXX");
		// 1000개까지 가능

		// 메시지
		List<String> msgs = new ArrayList<String>();
		msgs.add("[루나소프트]주문취소되었습니다.");

		// 버튼 url
		List<Map> btn_urls = new ArrayList<>();
		Map<String, Map> btns = new HashMap<>();
		//
	    // 템플릿의 URL 버튼과 index를 맞춰줘야합니다.
	    // 
	    // 예) 5개의 버튼을 사용하는 템플릿이고, 첫번째와 네번째 버튼이 url 버튼일 경우, 
	    //      btns.put("0", btn),
	    //      btns.put("3", btn)
	    // 형식으로 입력하셔야합니다.
	    //
	    // 아래 예시는 첫번째 버튼이 url 버튼인 경우입니다.
	    //

		Map<String, String> btn = new HashMap<>();
		btn.put("url_pc", "https://www.lunasoft.co.kr");
		btn.put("url_mobile", "https://www.lunasoft.co.kr");
		btns.put("0", btn);
//		btns.put("3", btn);
		btn_urls.add(btns);

		List<Map> messages = new ArrayList<>();
		Map<String, Object> message = new HashMap<>();
		for(int i=0;i<tels.size();i++){
			message.put("no", i);// 메시지 인덱스입니다. 
			message.put("tel_num", tels.get(i));
			message.put("msg_content", msgs.get(i));// 같은 메시지인 경우 배열로 처리 안하고 하나로 처리할 수 있습니다.
			message.put("sms_content", msgs.get(i));// 같은 메시지인 경우 배열로 처리 안하고 하나로 처리할 수 있습니다. 
			
			message.put("use_sms", "1");
			message.put("btn_url", btn_urls.get(i));// 같은 url인 경우 배열로 처리 안하고 하나로 처리할 수 있습니다. 
			
			messages.add(message);
			
		}
		
		JSONObject data = new JSONObject();
		data.put("userid", "abcde");// 고객사 id
		data.put("api_key", "apikey");// api key
		data.put("template_id", "999999");// 발송 템플릿
		data.put("messages", messages);
		
		HttpURLConnection conn = null;
		OutputStreamWriter ops = null;
		try {
			URL url = new URL("https://api.lunasoft.co.kr/lunatalk/api/message/send");
			conn = (HttpURLConnection) url.openConnection();
			conn.setDoInput(true);
			conn.setDoOutput(true);
			conn.setUseCaches(false);
			conn.setRequestMethod("POST");
			conn.setRequestProperty("Cache-Control", "no-cache");
			conn.setRequestProperty("Content-Type", "application/json;charset=UTF-8");

			ops = new OutputStreamWriter(conn.getOutputStream());
			ops.write(data.toString());
			

			ops.flush();
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {

			if (ops != null) {
				try {
					ops.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

		InputStream is = null;
		BufferedReader br = null;

		try {
			// API 호출 후 리턴된 문자열 스트림(응답으로 받는 이미지 파일의 URI)을 읽어서 return 처리한다.
			is = new BufferedInputStream(conn.getInputStream());
			br = new BufferedReader(new InputStreamReader(is));
			String line;
			StringBuilder sb = new StringBuilder();

			while ((line = br.readLine()) != null) {
				sb.append(line).append("\n");
			}
			br.close();

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}

			if (is != null) {
				try {
					is.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}

	}
	
	
}

This snippet took 0.01 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).