Google Calendar API를 사용하여 공휴일을 받는 PHP

7329 단어 PHPgoogleapi
Google의 API를 다룰 때까지의 메모

흐름으로는
  • Google 계정 가져 오기 (이 기사에서는 생략
  • Google Developers Console에서 프로젝트 만들기
  • API 사용
  • 이 API 키를 바탕으로 소스 코드를 작성한다!

  • 느낌이 듭니다.

    Google Developers Console





    google에 로그인한 상태에서 Google Developers Console에 액세스하세요.

    이 화면의 '프로젝트 만들기'에서 프로젝트 이름을 넣고 '만들기' 버튼을 누릅니다.



    작성이 완료되면 다음과 같은 화면으로 전환합니다.



    이것으로 프로젝션 생성이 완료됩니다.

    API 사용



    생성 직후의 화면에서 'Google API 사용'이라는 링크가 있습니다.



    이 링크로 전환하면 '활성화 할 수있는 API 목록'이 표시됩니다.



    이번에는 Calendar API를 다루므로 검색 상자에 Calendar API를 입력하고 결과 링크에서 개요 페이지로 전환합니다.



    개요



    개요 페이지는 이런 느낌



    여기에서 API를 활성화하고 API 키를 가져옵니다. 먼저 여기에서 "API 활성화"버튼을 눌러 활성화합시다.

    몇 초가 지나면 다음과 같이 "이 API가 활성화되어 있지만 자격 증명을 만들 때까지 프로젝트에서 사용할 수 없습니다."라는 메시지가 표시되므로 자격 증명을 만듭니다.



    즉시 "인증 정보로 이동"을 클릭하여 자격 증명을 등록합시다.

    전환 대상 화면은 이런 식으로



    이 화면 상단의 "이 절차를 건너 뛰고 ..."에서 "API 키"를 클릭하면 "어떤 유형의 키"를 만들 것인지 묻기 때문에 이번에는 "서버 키"를 만듭니다.





    그러면 다음 화면에서 "서버 키 이름"과 "허용할 IP 주소"를 지정하는 화면이 열립니다.



    여기에 '서버 키 이름'과 '허용할 IP 주소'를 입력하고 '만들기' 버튼을 눌러 완료합니다.



    API는 목록 화면에서도 확인할 수 있습니다.



    이것으로 API 키 검색이 완료됩니다.

    공휴일을 얻는 코드



    여러가지 부족합니다만, api_key 의 취급에는 주의해 주세요.
    
    <?php
    
        $api_key = 'さっき取得したAPIキーをこちらに';
        $holidays_id = '[email protected]';
        $holidays_url = sprintf(
            'https://www.googleapis.com/calendar/v3/calendars/%s/events?'.
            'key=%s&timeMin=%s&timeMax=%s&maxResults=%d&orderBy=startTime&singleEvents=true',
            $holidays_id,
            $api_key,
            $start_date,
            $end_date,
            30  
        );
    
        if( $results = file_get_contents($holidays_url, true))
        {
            $results = json_decode($results);
            $holidays = array();
            foreach($results->items as $item)
            {
                $date = strtotime((string) $item->start->date);
                $title = (string) $item->summary;
                $holidays[date('Y-m-d', $date)] = $title;   
            }
            ksort($holidays);   
        }
    ?>
    
    

    주의점


  • 날짜는 "2016-05-31T00%3A00%3A00.000Z"와 같은 형식이 되도록 날짜 문자열을 작성하십시오.
  • maxResults 는 「취득하는 공휴일의 건수」라고 합니다. 여기서 30으로 설정했지만 사용법에 따라 숫자를 변경하십시오.
  • 좋은 웹페이지 즐겨찾기