Rabu, 05 Juli 2023

Laravel & Google Calendar (spatie/laravel-google-calendar)

Tutorial untuk membuat event ke google calendar https://github.com/spatie/laravel-google-calendar

1. Installation Spatie Laravel

Anda dapat menginstal paket melalui komposer:

composer require spatie/laravel-google-calendar 

Anda harus menerbitkan konfigurasi dengan perintah ini:

php artisan vendor:publish --provider="Spatie\GoogleCalendar\GoogleCalendarServiceProvider"

command diatas akan membuat file bernama google-calendar.php di direktori config anda dengan konten berikut:

return [

'default_auth_profile' => env('GOOGLE_CALENDAR_AUTH_PROFILE', 'service_account'),

'auth_profiles' => [

'service_account' => [
'credentials_json' => storage_path('app/credentials/google-calendar-credentials.json'),
],

'oauth' => [
'credentials_json' => storage_path('app/credentials/google-calendar/oauth-credentials.json'),
'token_json' => storage_path('app/credentials/google-calendar/oauth-token.json'),
],
],

'calendar_id' => env('GOOGLE_CALENDAR_ID'),
'user_to_impersonate' => env('GOOGLE_CALENDAR_IMPERSONATE'),
];

kemuadian tambahkan konfigurasi di file .env

GOOGLE_CALENDAR_AUTH_PROFILE=service_account
GOOGLE_CALENDAR_ID=emailid@gmail.com

2. Setting Google Console

Hal pertama yang perlu Anda lakukan adalah mendapatkan kredensial untuk menggunakan API Google. Saya berasumsi bahwa Anda telah membuat akun Google dan masuk. Buka Google Console API dan klik "Pilih proyek" di header.

 

Anda dapat memilih projek (2), atau membuat project baru (1), seperti terlihat pada gambar dibawah ini

 

 kemudian pilih "ENABLE APPS AND SERVICES".

 

Kemudian Pilih "Google Calendar API".

 

Kemudian klik tombol "Enable".

 

Kemudian, membuat Credetial.

 

Pilih Credential Service Account.

 

Masukan Service Account, kemudian klik tombol DONE,

 

kemudianklik tombol icon edit seprti pada gambar diatas.

 

kemudian pilih JSON, lalu klik tombol Create.

 

Setelah itu maka secara otomatis akan mendownload file JSON, simpanlah file tersebut. kemudian copy file tersebut kedalam project anda pada directory /storage/app/credentials/google-calendar-credentials.json.

3. Setting Account Google Calendar

Langkah selanjutnya masuk ke aplikasi google calendar anda https://calendar.google.com. lalu klik tombol setting.

 

 kemudian klik tombol ADD PEOPLE,

8 

kemudian tambahkan email dari credential yang tadi anda buat, seperti pada gambar dibawah ini.

 

kemudian scroll ke bawah ke bagian "Integrasikan kalender" untuk melihat id kalender. 

10.png

Anda perlu menambahkan id tersebut ke file konfigurasi ".env".

GOOGLE_CALENDAR_ID=xxxx@gmail.com   

4. Create Application

Selanjutnya kita akan membuat contoh aplikasi untuk push event calendar. seperti pada script dibawah.

<?php

namespace App\Console\Commands;

use Carbon\Carbon;
use Illuminate\Console\Command;
use Spatie\GoogleCalendar\Event;

class Test extends Command
{
protected $signature = 'test:test';
protected $description = 'Test';

public function __construct(){
parent::__construct();
}

public function handle(){
$this->info('TEST GOOGLE CALENDAR ...');

Event::create([
'name' => 'A new event3',
'startDateTime' => Carbon::now(),
'endDateTime' => Carbon::now()->addHour(),
]);
}
}

kemudian test pada terminal dengan perintah sbb: php artisan test:test, 

kemudian cek di akun google calendar anda apakah event yang anda buat tadi sudah masuk ke akun calendar anda?

5. Share google calendar ke akun lain

langkah pertama masuk ke akun google calendar anda. kemudian klik tombol setting

kemudian klik tombol "ADD PEOPLE AND GROUP".

 

kemudian masukan akun email  yang akan anda share.

 

setelah itu di akun tujuan tinggal melakukan approval yang masuk pada email. kemudian di akun tujuan harus melakukan subscribe seperti pada gambar dibawah


Selesai.

Tidak ada komentar:

Posting Komentar