Język:

Jak używać Google Calendar API v3: koszty, limity, przykłady

Kontynuujemy rozmowę o Google API i o tym, jak z niego korzystać. Dziś mamy dla Ciebie kompletny poradnik dotyczący Calendar API — zobaczymy, czym ono jest, jak z niego korzystać i przejrzymy kilka przykładów.
Sprawdź, co sądzi ChatGPT Otwórz edytor widgetu na żywo
autorstwa
How to use Google Calendar API v3: cost, limits, examples

Czym jest Google Calendar API



Jak z tym pracować

Istnieje kilka sposobów zastosowania Calendar API v3. Oto kilka z nich.

  • Twórz wydarzenia. Kalendarz Google to świetne narzędzie, które pomaga użytkownikom utrzymać porządek. Dzięki niemu możesz na przykład dodać trasę wędrówki jako wydarzenie w kalendarzu i przypominać uczestnikom o nim, aby byli przygotowani bez stresu.
  • Powtarzalne wydarzenia. Niektóre wydarzenia pojawiają się wielokrotnie – codzienne spotkania, urodziny lub święta. Zwykle są identyczne i mają ten sam czas rozpoczęcia i zakończenia.
  • Synchronizuj zasoby. Możesz utrzymywać dane dla wszystkich kolekcji kalendarzy w synchronizacji, oszczędzając przepustowość.
  • Włącz powiadomienia push. Istnieje możliwość użycia powiadomień push, które informują Twoją aplikację, gdy zasób ulega zmianie.
  • Synchronizuj zasoby. API Google Calendar pomoże zsynchronizować dane we wszystkich zestawach kalendarzy, jednocześnie ograniczając zużycie pasma.

Google Calendar also uses the following resources to work with:

  • Wydarzenie – funkcja kalendarza zawierająca tytuł, czas rozpoczęcia i zakończenia oraz uczestników.
  • Kalendarz – zbiór wydarzeń.
  • Lista kalendarzy – lista wszystkich kalendarzy w interfejsie Kalendarza
  • Ustawienia – preferencja z interfejsu Kalendarza, taka jak strefa czasowa użytkowników.
  • ACL – zasada kontroli dostępu, która nadaje użytkownikowi specjalny poziom dostępu do kalendarza.
  • Kolor – kolor wyświetlany w interfejsie kalendarza
  • Dostępność / Zajętość – okresy, gdy kalendarz ma zaplanowane wydarzenia oznaczone jako „zajęte” lub gdy nie ma żadnych wydarzeń i uznawany jest za „wolny”.

Korzystaj z API Kalendarza

Każde żądanie wysyłane przez Twoją aplikację do Calendar API v3 wymaga tokena autoryzacyjnego. Token ten identyfikuje także aplikację w Google. Aplikacja musi używać OAuth 2.0 do autoryzacji zapytań – inne protokoły autoryzacyjne nie są obsługiwane.

Wskazówka: OAuth 2.0 to protokół umożliwiający użytkownikowi przyznanie ograniczonego dostępu do swoich zasobów na jednej stronie innemu witrynie bez konieczności przedstawiania danych uwierzytelniających.

Pamiętaj, że wszystkie wywołania API Kalendarza Google muszą być uwierzytelnione przez zalogowanego użytkownika. Proces autoryzacji różni się w zależności od typu aplikacji, którą posiadasz. Poniższy przebieg pasuje praktycznie do wszystkich typów aplikacji:

  1. Podczas tworzenia aplikacji zarejestruj ją za pomocą konsoli Google Calendar API. Google przekaże Ci identyfikator klienta i sekret klienta. Będziesz potrzebować tych informacji później.
  2. Włącz interfejs API Google Calendar w konsoli API. Jeśli nie jest wymieniony na liście, pomiń ten krok.
  3. Gdy Twoja aplikacja potrzebuje dostępu do danych użytkownika, Google prosi o określony zakres dostępu.
  4. Następnie Google wyświetla użytkownikowi ekran zgody, prosząc o zezwolenie Twojej aplikacji na dostęp do niektórych ich danych.
  5. Jeśli użytkownik wyrazi zgodę, Google przydzieli Twojej aplikacji krótkotrwały token dostępu.
  6. Następnie Twoja aplikacja żąda danych użytkownika i dołącza token do żądania.
  7. W przypadku uznania Twojego żądania i tokena za ważne, Google zwróci żądane dane.

Czasami mogą być potrzebne dodatkowe kroki, na przykład użycie tokenów odświeżania w celu uzyskania nowych tokenów dostępu. Możesz sprawdzić procesy dla różnych typów aplikacji tutaj.

Jeśli będziesz mieć szczęście i uzyskasz zatwierdzenie, otrzymasz dostęp do dokumentacji API Kalendarza, aby móc rozpocząć rozwój zintegrowanego oprogramowania.



Jeśli potrzebujesz prostego i szybkiego sposobu dodania Kalendarza do swojej strony internetowej, rozważ użycie Event Calendar od Elfsight. Dzięki temu Twoje wydarzenia będą widoczne w SERP Google bez wysiłku.

API Kalendarza: przykłady

Utwórz zdarzenie w Google Calendar API

Aby utworzyć zdarzenie, musisz wywołać metodę events.insert(), podając przynajmniej następujące parametry:

  • calendarId – it’s the calendar identifier which can either be an email address of the calendar on which you are to create an event or a special keyword ‘primary’ that will use the primary calendar of the logged in user.
  • to wydarzenie do stworzenia z wszystkimi niezbędnymi informacjami, takimi jak czas rozpoczęcia i zakończenia. Jedynymi dwoma wymaganymi polami są tutaj czas rozpoczęcia i zakończenia.

Poniższy przykład ilustruje proces tworzenia wydarzenia i ustawiania jego metadanych:

Przykład: proces tworzenia zdarzenia

// Refer to the JavaScript quickstart on how to setup the environment:



// https://developers.google.com/calendar/quickstart/js



// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any



// stored credentials.







var event = {



'summary': 'Google I/O 2015',



'location': '800 Howard St., San Francisco, CA 94103',



'description': 'A chance to hear more about Google's developer products.',



'start': {



'dateTime': '2015-05-28T09:00:00-07:00',



'timeZone': 'America/Los_Angeles'



},



'end': {



'dateTime': '2015-05-28T17:00:00-07:00',



'timeZone': 'America/Los_Angeles'



},



'recurrence': [



'RRULE:FREQ=DAILY;COUNT=2'



],



'attendees': [



{'email': 'lpage@example.com'},



{'email': 'sbrin@example.com'}



],



'reminders': {



'useDefault': false,



'overrides': [



{'method': 'email', 'minutes': 24 * 60},



{'method': 'popup', 'minutes': 10}



]



}



};







var request = gapi.client.calendar.events.insert({



'calendarId': 'primary',



'resource': event



});







request.execute(function(event) {



appendPre('Event created: ' + event.htmlLink);



});



API powtarzających się wydarzeń

Te wydarzenia powtarzają się według stałego harmonogramu, na przykład codzienne spotkania, urodziny lub święta. Oto przykład wydarzenia trwającego od 6:00 do 7:00 we wtorki i piątki, zaczynając od 15 września 2015 i kończącego po piątym wystąpieniu 29 września:

Przykład: powtarzające się wydarzenia

... "start": {



"dateTime": "2015-09-15T06:00:00+02:00",



"timeZone": "Europe/Zurich"



},



"end": {



"dateTime": "2015-09-15T07:00:00+02:00",



"timeZone": "Europe/Zurich"



},



"recurrence": [



"RRULE:FREQ=WEEKLY;COUNT=5;BYDAY=TU,FR"



],



…

A tutaj widać całodniowe wydarzenie, które zaczyna się 1 czerwca 2015 r. i powtarza co 3 dni przez cały miesiąc, z wyłączeniem 10 czerwca, a uwzględniając 9 i 11 czerwca:

Przykład: całodniowe wydarzenie powtarzające się

… "start": {



"date": "2015-06-01"



},







"end": {



"date": "2015-06-02"



},



"recurrence": [







"EXDATE;VALUE=DATE:20150610",







"RDATE;VALUE=DATE:20150609,20150611",







"RRULE:FREQ=DAILY;UNTIL=20150628;INTERVAL=3"







],







…



Synchronizuj zasoby

Ta metoda pomaga utrzymać dane dla wszystkich zestawów kalendarzy w synchronizacji. Synchronizacja przyrostowa składa się z dwóch etapów:

  • Początkowa pełna synchronizacja jest wykonywana na samym początku, aby w pełni zsynchronizować stan klienta i serwera.
  • Synchronizacja przyrostowa jest wykonywana wielokrotnie, aktualizując klienta o wszystkie zmiany, które zaszły od poprzedniej aktualizacji.

Oto przykład tokenu synchronizacji:

Przykład: token synchronizacji

// Refer to the JavaScript quickstart on how to setup the environment:



// https://developers.google.com/calendar/quickstart/js



// Change the scope to 'https://www.googleapis.com/auth/calendar' and delete any



// stored credentials.







var event = {



'summary': 'Google I/O 2015',



'location': '800 Howard St., San Francisco, CA 94103',



'description': 'A chance to hear more about Google's developer products.',



'start': {



'dateTime': '2015-05-28T09:00:00-07:00',



'timeZone': 'America/Los_Angeles'



},



'end': {



'dateTime': '2015-05-28T17:00:00-07:00',



'timeZone': 'America/Los_Angeles'



},



'recurrence': [



'RRULE:FREQ=DAILY;COUNT=2'



],



'attendees': [



{'email': 'lpage@example.com'},



{'email': 'sbrin@example.com'}



],



'reminders': {



'useDefault': false,



'overrides': [



{'method': 'email', 'minutes': 24 * 60},



{'method': 'popup', 'minutes': 10}



]



}



};







var request = gapi.client.calendar.events.insert({



'calendarId': 'primary',



'resource': event



});







request.execute(function(event) {



appendPre('Event created: ' + event.htmlLink);



});



Powiadomienia push

Google Calendar API v3 daje możliwość otrzymywania powiadomień push, które umożliwiają monitorowanie zmian w zasobach. Ta funkcja może pomóc w ulepszeniu Twojej aplikacji.

Aby rozpocząć korzystanie z powiadomień push, potrzebujesz trzech rzeczy:

  • Zarejestruj domenę adresu URL odbiorcy.
  • Skonfiguruj adres URL odbiorcy lub odbiornik wywołań zwrotnych „Webhook”.
  • Skonfiguruj kanał powiadomień dla każdego punktu końcowego zasobu, który będziesz monitorować.
Wskazówka: Obecnie Google Calendar API obsługuje powiadomienia o zmianach w zasobach ACL, CalendarList, Events i Settings.

Poniższy przykład pokazuje, jak możesz zacząć obserwować zmiany w kolekcji wydarzeń:

Przykład: obserwowanie zmian w zbiorze wydarzeń

POST https://www.googleapis.com/calendar/v3/calendars/my_calendar@gmail.com/events/watch



Authorization: Bearer auth_token_for_current_user



Content-Type: application/json



{







"id": "01234567-89ab-cdef-0123456789ab", // Your channel ID.



"type": "web_hook",



"address": "https://mydomain.com/notifications", // Your receiving URL.



...







"token": "target=myApp-myCalendarChannelDest", // (Optional) Your channel token.



"expiration": 1426325213000 // (Optional) Your requested channel expiration time.



}



Ograniczenia Calendar API

Interfejs Calendar API ma limit 1 000 000 zapytań dziennie. Jeśli chcesz zmienić limity użycia lub zwiększyć przydział, wykonaj następujące kroki:

  • Utwórz konto rozliczeniowe, jeśli go nie masz.
  • Przejdź do strony Włączone interfejsy API w bibliotece API w Konsoli Google i wybierz API z listy.
  • Wybierz Kwoty, aby wyświetlać i zmieniać ustawienia dotyczące limitów.

Możesz również obserwować statystyki użycia w sekcji Użycie.

Są inne widgety, które pomagają korzystać z danych z platformy. Jednym z najbardziej korzystnych dla każdego biznesu jest Google Reviews widget. Ma szeroką funkcjonalność i umożliwia nie tylko osadzanie recenzji Google, ale także tworzenie bogatych fragmentów wyników wyszukiwania.

FAQ (często zadawane pytania)

Czy API Google Calendar jest darmowe?

Tak, korzystanie z Google Calendar API jest bezpłatne. Jednak występują pewne ograniczenia.

Jak mogę utworzyć wydarzenie za pomocą Calendar API?

Aby wywołać zdarzenie, należy użyć metody events.insert(), przekazując calendarId i parametry zdarzenia. Należy także ustawić zakres OAuth na https://www.googleapis.com/auth/calendar i upewnić się, że uwierzytelniony użytkownik ma uprawnienia do zapisu w kalendarzu o podanym calendarId.

Jak mogę uzyskać dane z Kalendarza Google?

Otwórz Kalendarz, a następnie kliknij sekcję „Moje kalendarze”. Wybierz kalendarz, który chcesz wyeksportować, i kliknij „Więcej”. W ustawieniach kalendarza kliknij „Eksportuj kalendarz”. Następnie plik ICS ze zdarzeniami zacznie się pobierać.

Czy mogę automatycznie tworzyć kopię zapasową kalendarza?

Pewnie. Aby to zrobić, otwórz zakładkę Kalendarz, a następnie kliknij „Więcej” i wybierz „Uruchom kopię zapasową” z listy rozwijanej — kopia zapasowa zacznie się automatycznie.

Jak znaleźć API Kalendarza Google?

Przejdź do Konsoli deweloperskiej Google i utwórz nowy projekt. W projekcie przejdź do API i uwierzytelnianie > API w pasku bocznym. Następnie znajdź Calendar API na liście.

Podsumowanie

Jak widzisz, praca z Google Calendar API nie jest trudna — wystarczy kilka prostych kroków. A teraz chcemy poznać Twoje doświadczenia w korzystaniu z tego narzędzia — podziel się przypadkami użycia i pomocnymi wskazówkami w komentarzach!

Autor artykułu
Menedżer treści
Jako menedżer treści w Elfsight koncentruję się na tworzeniu materiałów, które są praktyczne i inspirujące. Uwielbiam upraszczać skomplikowane rzeczy i czynić je łatwymi oraz przyjemnymi w czytaniu.