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

🔒 Jak wdrożyć HTTPS w Apache za pomocą mkcert – prosta i bezpieczna konfiguracja SSL

Bezpieczeństwo połączenia HTTPS to dziś standard — nawet w sieciach lokalnych i aplikacjach testowych. W tym poradniku pokażę Ci, jak w prosty sposób wdrożyć SSL w Apache z pomocą narzędzia mkcert , które tworzy w pełni zaufane certyfikaty lokalne — bez potrzeby kontaktu z Let’s Encrypt czy urzędami certyfikacji. 🧩 Dlaczego warto używać mkcert? mkcert to lekkie narzędzie, które automatycznie generuje certyfikaty zaufane przez przeglądarkę — bez ostrzeżeń o „niebezpiecznym połączeniu”. ✅ działa w sieci lokalnej, ✅ nie wymaga dostępu do Internetu, ✅ certyfikaty są natychmiast zaufane po instalacji CA, ✅ idealne dla środowisk firmowych i intranetów. ⚙️ Krok 1: Instalacja Apache sudo apt update sudo apt install apache2 -y sudo systemctl enable apache2 sudo systemctl start apache2 Po instalacji otwórz w przeglądarce: http://10.0.0.123 Powinna się wyświetlić strona powitalna Apache. 🔧 Krok 2: Instalacja mkcert sudo apt install libnss3-tools wget...

API SHOPER

Jak korzystać z API Shoper - Kompletny przewodnik 1. Wprowadzenie API Shoper umożliwia zautomatyzowanie wielu operacji w Twoim sklepie internetowym, takich jak zarządzanie produktami, zdjęciami, zamówieniami i wieloma innymi elementami. W tym artykule pokażę Ci krok po kroku, jak połączyć się z API Shoper oraz wykonać podstawowe operacje, takie jak dodawanie produktów, zarządzanie zdjęciami i przypisywanie produktów powiązanych. 2. Autoryzacja - Uzyskanie Access Token Aby korzystać z API Shoper, najpierw musisz uzyskać access token : POST https://twojsklep.shoper.pl/webapi/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=TWOJE_CLIENT_ID&client_secret=TWOJE_CLIENT_SECRET Przykład w PHP: <?php $client_id = 'TWOJE_CLIENT_ID'; $client_secret = 'TWOJE_CLIENT_SECRET'; $ch = curl_init('https://twojsklep.shoper.pl/webapi/oauth/token'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch...

Najbardziej przydatne komendy PowerShell dla admina

Administracja lokalną domeną oraz Microsoft 365 Business Standard wymaga efektywnego zarządzania użytkownikami, komputerami, bezpieczeństwem i integracją z chmurą. Oto zestaw kluczowych komend PowerShell, które pomogą w codziennej pracy administratora IT. 🔹 1. Zarządzanie użytkownikami w Active Directory Lista użytkowników w domenie: Get-ADUser -Filter * Dodanie nowego użytkownika: New-ADUser -Name "Jan Kowalski" -UserPrincipalName jan.kowalski@firma.local -AccountPassword (ConvertTo-SecureString "Hasło123!" -AsPlainText -Force) -Enabled $true Resetowanie hasła użytkownika: Set-ADAccountPassword -Identity jan.kowalski -NewPassword (ConvertTo-SecureString "NoweHasło!" -AsPlainText -Force) Dodanie użytkownika do grupy: Add-ADGroupMember -Identity "IT_Admins" -Members jan.kowalski 🔹 2. Zarządzanie komputerami w domenie Lista komputerów w domenie: Get-ADComputer -Filter * Dodanie nowego komputera do domen...