Przejdź do głównej zawartości

Kalendarz Google - PHP

Jak dodać wydarzenia do Kalendarza Google w PHP?

Wprowadzenie

Google Calendar API pozwala na automatyczne dodawanie wydarzeń do kalendarza Google za pomocą PHP. W tym artykule pokażemy dwa sposoby:

  • Uwierzytelnienie użytkownika przez OAuth 2.0
  • Wykorzystanie konta usługi (Service Account)

Metoda 1: OAuth 2.0 – Autoryzacja użytkownika

1. Utworzenie projektu w Google Cloud Console

1. Przejdź do Google Cloud Console.
2. Utwórz nowy projekt lub wybierz istniejący.
3. Włącz Google Calendar API w sekcji API & Services.

2. Konfiguracja danych uwierzytelniających

1. Utwórz dane uwierzytelniające: OAuth 2.0 Client ID.
2. Pobierz plik JSON zawierający klucz autoryzacyjny.

3. Instalacja Google Client Library w PHP

composer require google/apiclient:^2.0

4. Autoryzacja użytkownika

Tworzymy plik auth.php:

<?php
require 'vendor/autoload.php';
session_start();

$client = new Google_Client();
$client->setAuthConfig('credentials.json');
$client->setRedirectUri('http://localhost/oauth2callback.php');
$client->addScope(Google_Service_Calendar::CALENDAR_EVENTS);

if (!isset($_GET['code'])) {
    $auth_url = $client->createAuthUrl();
    header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
    exit;
} else {
    $client->authenticate($_GET['code']);
    $_SESSION['access_token'] = $client->getAccessToken();
    header('Location: calendar.php');
    exit;
}

5. Dodawanie wydarzenia

Tworzymy plik calendar.php:

<?php
require 'vendor/autoload.php';
session_start();

$client = new Google_Client();
$client->setAuthConfig('credentials.json');
$client->setAccessToken($_SESSION['access_token']);

$service = new Google_Service_Calendar($client);

$event = new Google_Service_Calendar_Event([
    'summary' => 'Spotkanie testowe',
    'start' => ['dateTime' => '2025-02-20T10:00:00', 'timeZone' => 'Europe/Warsaw'],
    'end' => ['dateTime' => '2025-02-20T11:00:00', 'timeZone' => 'Europe/Warsaw'],
]);

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);

echo 'Dodano wydarzenie: ' . $event->htmlLink;

Metoda 2: Konto usługi (Service Account)

1. Utworzenie konta usługi

1. W Google Cloud Console wybierz Service Account.
2. Pobierz plik JSON z kluczem autoryzacyjnym.

2. Udostępnienie kalendarza

1. Otwórz Google Calendar → Ustawienia.
2. Dodaj e-mail konta usługi i nadaj mu uprawnienia do edycji.

3. Instalacja biblioteki Google API

composer require google/apiclient:^2.0

4. Dodawanie wydarzenia

<?php
require 'vendor/autoload.php';

$client = new Google_Client();
$client->setAuthConfig('service-account.json');
$client->setScopes(Google_Service_Calendar::CALENDAR_EVENTS);

$service = new Google_Service_Calendar($client);

$event = new Google_Service_Calendar_Event([
    'summary' => 'Automatyczne spotkanie',
    'start' => ['dateTime' => '2025-02-21T09:00:00', 'timeZone' => 'Europe/Warsaw'],
    'end' => ['dateTime' => '2025-02-21T10:00:00', 'timeZone' => 'Europe/Warsaw'],
]);

$calendarId = 'primary';
$event = $service->events->insert($calendarId, $event);

echo 'Dodano wydarzenie: ' . $event->htmlLink;

Podsumowanie

Metoda Kiedy używać? Zalety Wady
OAuth 2.0 Gdy użytkownik dodaje wydarzenia do swojego kalendarza Możliwość dodawania do różnych kont Wymaga logowania
Konto usługi Automatyczne dodawanie do jednego kalendarza (np. firmowego) Nie wymaga logowania Nie można dodać do kalendarzy użytkowników bez ich zgody

Wybór metody zależy od Twoich potrzeb. Jeśli chcesz, aby użytkownicy dodawali wydarzenia do swoich kalendarzy – użyj OAuth 2.0. Jeśli potrzebujesz automatycznego dodawania wydarzeń do jednego kalendarza – wybierz konto usługi.

Powodzenia!

Komentarze

Popularne posty z tego bloga

Generowanie certyfikatów Let's Encrypt w Windows

Jak wygenerować certyfikat Let's Encrypt w systemie Windows? Przewodnik krok po kroku Certyfikaty SSL/TLS są niezbędne do zabezpieczenia komunikacji między użytkownikami a serwerem. Let's Encrypt to darmowa, zaufana organizacja, która umożliwia generowanie certyfikatów SSL w prosty sposób. W tym wpisie pokażemy, jak wygenerować certyfikat Let's Encrypt w systemie Windows za pomocą narzędzia Certbot oraz jakie opcje i alternatywy są dostępne. Krok 1: Zainstaluj Python Certbot wymaga Pythona do działania. Jeśli nie masz go jeszcze zainstalowanego: Pobierz instalator Pythona ze strony python.org . Uruchom instalator i zaznacz opcję "Add Python to PATH" . Krok 2: Zainstaluj Certbot Otwórz wiersz polecenia (cmd) jako administrator. Zainstaluj Certbot za pomocą pip: pip install certbot Krok 3: Wygeneruj certyfikat ...

Polityka wykonawcza skryptów w PowerShellu

Polityka wykonawcza (Execution Policy) w PowerShell – co to jest i jak ją zmienić? PowerShell to potężne narzędzie do automatyzacji i zarządzania systemem Windows. Jednak domyślne ustawienia bezpieczeństwa mogą uniemożliwić uruchamianie skryptów. W tym wpisie wyjaśniam, czym jest polityka wykonawcza (Execution Policy), jak ją sprawdzić i zmienić, aby móc swobodnie korzystać z PowerShell. Czym jest polityka wykonawcza (Execution Policy)? Polityka wykonawcza to mechanizm bezpieczeństwa w PowerShell, który kontroluje, jakie skrypty mogą być uruchamiane na systemie. Ma ona na celu zapobieganie przypadkowemu lub złośliwemu uruchomieniu niebezpiecznych skryptów. Dostępne polityki wykonawcze PowerShell oferuje kilka poziomów polityki wykonawczej: Restricted – domyślna polityka. Blokuje wszystkie skrypty PowerShell. Można uruchamiać tylko polecenia wprowadzane bezpośrednio w konsoli. AllSigned – pozwala na uruchamianie tylko skryptów pod...