Properties prop = new Properties();
public void getUpdates() throws Exception{
// 프로퍼티에 정보들을 담아놓고 호출하기 위함 S
prop = new Properties();
String resource="프로퍼티 이름";
Reader reader = Resources.getResourceAsReader(resource);
prop.load(reader);
// 프로퍼티에 정보들을 담아놓고 호출하기 위함 E
String prefixUrl = prop.getProperty("TELEGRAM_URL"); // properties에 선언된 텔레그램의 고정 URL
String token = prop.getProperty("TELEGRAM_TOKEN"); // properties에 선언된 봇의 토큰값(API Key)
// 텔레그램기본 URL과 API키,API주소를 이용하여 봇에게 보낸 채팅들을 json형태로 보여주는 URL
url = new URL(prefixUrl+token+"/getUpdates");
br= new BufferedReader(new InputStreamReader(url.openStream()));
/// 버퍼에 있는 정보를 하나의 문자열로 변환
while((line=br.readLine())!=null){
result=result.concat(line);
}
JSONParser parser = new JSONParser();
JSONObject obj = (JSONObject)parser.parse(result);
JSONArray resultArray = (JSONArray)obj.get("result");
for(int i=0;i<resultArray.size();i++){
HashMap rs = (HashMap) resultArray.get(i);
HashMap messageMap = (HashMap) rs.get("message");
HashMap chatMap = (HashMap) messageMap.get("chat");
URLConnection conn = null;
try{
switch(messageMap.get("text").toString()){
case "안녕하세요" :{
url = new URL(prefixUrl+token+"/sendMessage?text=안녕하세요&chat_id="+chatMap.get("id"));
conn = url.openConnection();
sendMessage(url,conn);
break;
}
default:{
url = new URL(prefixUrl+token+"/sendMessage?text=무슨말인지 모르겠어요...&chat_id="+chatMap.get("id"));
conn = url.openConnection();
sendMessage(url,conn);
break;
}
}
}catch (Exception e) {
e.printStackTrace();
log.info("텔레그램 메세지를 처리중 오류 발생");
}finally{
br.close();
}
}
public void sendMessage(URL url,URLConnection conn){
BufferedReader br = null;
InputStream is = null;
StringBuilder sb = new StringBuilder();
try{
is = new BufferedInputStream(conn.getInputStream());
br = new BufferedReader(new InputStreamReader(is));
String inputLine = "";
while ((inputLine = br.readLine()) != null) {
sb.append(inputLine);
}
String response = sb.toString();
br.close();
}catch(IOException e){
e.printStackTrace();
log.info("=====>InputStream 오류");
}catch(Exception e){
e.printStackTrace();
}finally{
((HttpURLConnection) conn).disconnect();
}
}
'Java' 카테고리의 다른 글
Java에서 윈도우 cmd를 이용하여 명령어를 사용하고 싶은경우 (0) | 2021.10.21 |
---|---|
springboot Xss대비 네이버 lucy-xss-filter 사용 특정 특수문자 허용 (0) | 2020.06.19 |
GragorianCalendar 이용하여 한시간 전 yyyy-MM-dd HH 구하기 (0) | 2019.07.04 |
프로퍼티파일 주입하기 (0) | 2019.07.04 |
Object 타입 소수점 자르기 (0) | 2019.07.03 |