JSP/SERVLET
2020.03.20 / 10:08

½ºÇÁ¸µ ºÎÆ®¿¡¼­ ±¸±Û API ¿¬µ¿ (2) Calendar API »ç¿ëÇϱâ

Äڷγª
Ãßõ ¼ö 275



 ÀÌÀü ±Û¿¡ À̾î Spring Boot Application¿¡¼­ Calendar API »ç¿ëÇÏ´Â ³»¿ëÀÔ´Ï´Ù.


 ÀÌ Àü ±Û Spring Boot Application¿¡¼­ ±¸±Û Calendar API ¿¬µ¿ (1) ³»¿ëÀº ´ëºÎºÐÀÇ ±¸±Û API¿¡¼­ ÇÊ¿ä·ÎÇÏ´Â ±¸±Û Oauth ÀÎÁõ¿¡ ´ëÇÑ ³»¿ëÀÌ¿´°í ´ÙÀ½Àº Calendar ¼­ºñ½º¸¦ »ý¼ºÇÏ´Â °úÁ¤ ÀÔ´Ï´Ù. 


 ÀÌÀü ±Û ¿¡¼­ »ý¼ºÇÑ Util¿¡ Calendar ¼­ºñ½º¸¦ »ý¼ºÇÏ´Â ¸Þ¼Òµå¸¦ ÀÛ¼ºÇÏ¿´½À´Ï´Ù.


1
2
3
4
5
6
7
8
9
10
11
public static com.google.api.services.calendar.Calendar getCalendarService() {
        try {
            Credential credential = authorize();
            return new com.google.api.services.calendar.Calendar.Builder(
                    HTTP_TRANSPORT, JSON_FACTORY, credential)
                    .setApplicationName(APPLICATION_NAME)
                    .build();
        }catch(Exception e){
            return null;
        }
    }
cs


 Dependency·Î Ãß°¡ÇÏ¿´´ø Calendar ¶óÀ̺귯¸®¿Í À§ °úÁ¤ÀÇ ±¸±Û ÀÎÁõ °´Ã¼ÀÎ credentialÀ» »ç¿ëÇÏ¿© Canlendar ¼­ºñ½º¸¦ »ý¼ºÇÕ´Ï´Ù.


 ÀÌÁ¦ »ý¼ºµÈ Canlendar ¼­ºñ½º¸¦ »ç¿ëÇغ¸°Ú½À´Ï´Ù. google api¿¡¼­ Á¦°øÇØÁÖ´Â Calendar ¼­ºñ½º´Â API È£ÃâÀ» ½±°Ô µµ¿ÍÁÖ´Â ¼­ºñ½ºÀÔ´Ï´Ù. API Reference¸¦ ÅëÇØ »ç¿ëÇÒ ¼ö ÀÖ´Â ±â´ÉÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

 ÀÌ ¼­ºñ½º¸¦ ÅëÇØ Oauth ·Î±×ÀÎÇÑ °èÁ¤¿¡¼­ Á¢±Ù °¡´ÉÇÑ ´Þ·ÂÀ» °¡Á®¿Ã ¼ö ÀÖ½À´Ï´Ù. Á¶È¸¸¦ ¿øÇϴ ´Þ·ÂÀÇ °íÀ¯ id¸¦ ÀÌ¿ëÇÏ¿© Á¶È¸°¡ °¡´ÉÇÕ´Ï´Ù. 




 Á¶È¸¸¦ ¿øÇÏ´Â ´Þ·ÂÀÇ È¯°æ¼³Á¤À» µé¾î°¡¸é Ķ¸°´õID¸¦ È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ °ªÀ» ¼­ºñ½ºÀÇ Å° °ªÀ¸·Î Á¶È¸¸¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Àú´Â Calendar ¼­ºñ½ºÀÇ events.list¸¦ »ç¿ëÇÏ¿© ÇöÀç ½Ã°£À¸·ÎºÎÅÍ Æ¯Á¤ ½Ã°£±îÁö ÇØ´ç ´Þ·ÂÀÇ ¸ðµç ÀÏÁ¤À»  °¡Á®¿À·Á°í ÇÕ´Ï´Ù. list¿¡ key °ªÀ¸·Î »ç¿ëµÉ Ķ¸°´õ ID¸¦ ÀÔ·ÂÇÕ´Ï´Ù.


1
2
3
4
5
6
7
Events events = service.events().list(MeetingRoomId)
                        .setMaxResults(100)
                        .setTimeMin(now)
                        .setTimeMax(max)
                        .setOrderBy("startTime")
                        .setSingleEvents(true)
                        .execute();     
cs


 

 API ¶óÀ̺귯¸®ÀÇ ¼­ºñ½º´Â Äõ¸® ÀÛ¼ºÀ» ÇϵíÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ» ¸Þ¼Òµå·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô µµ¿ÍÁÝ´Ï´Ù. ÇöÀç ½Ã°£À¸·ÎºÙÅÍ max ½Ã°£±îÁöÀÇ ÇØ´ç ´Þ·Â ÀÏÁ¤À» Á¶È¸ÇÏ°Ô µË´Ï´Ù. 

 ¿©±â¼­ ÁÖÀÇÇÒ Á¡Àº ¿©±â¿¡¼­ »ç¿ëÇÏ´Â ½Ã°£ °´Ã¼ DateTimeÀº ±¸±Û¿¡¼­ Á¦°øÇÏ´Â DateTime °´Ã¼ ÀÔ´Ï´Ù. jodaÀÇ DateTimeÀ̶ó°í »ý°¢ÇÏ¸é ¾ÈµË´Ï´Ù ¼­·Î °£ÀÇ ÄÁ¹öÆ®µµ µÇÁö ¾Ê¾Æ Date °´Ã¼¸¦ Áß°¢ °´Ã¼·Î »ç¿ëÇÏ¿© ÄÁ¹öÆÃÀ» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 Äõ¸®¸¦ ¸¸µé°í execute¸¦ ½ÇÇàÇÏ¸é ±¸±Û API ¼­¹ö·Î ¿äûÀÌ °¡°í ÀÀ´äÀÌ ¿À°Ô µË´Ï´Ù.


1
2
3
4
5
6
7
8
 List<Event> items = events.getItems();
 if (items.size() == 0) {
      return "¸ðµç ½Ã°£ ºñ¾îÀÖ½À´Ï´Ù.";
 } else {
    for (int i = 0; i < items.size(); i++) {
        ...
    }
 }
cs


 list¸¦ ¿äûÇß´Ù¸é Events¸¦ Response·Î ¹ÝȯÇÏ°Ô µË´Ï´Ù. Events °´Ã¼´Â getItems¸¦ ÅëÇØ List<Event> °´Ã¼¸¦ º¼ ¼ö ÀÖ½À´Ï´Ù. °¢ APIÀÇ API Referance¸¦ º¸°í ¿øÇÏ´Â ±â´ÉÀ» ¸¸µå½Ã±â ¹Ù¶ø´Ï´Ù!



Ãâó: https://kingbbode.tistory.com/9 [°³¹ß³ëÆ® - kingbbode]