Paket ini membuat bekerja dengan Kalender Google menjadi mudah. Setelah diatur, Anda dapat melakukan hal -hal ini:
use Spatie GoogleCalendar Event ;
// create a new event
$ event = new Event ;
$ event -> name = ' A new event ' ;
$ event -> description = ' Event description ' ;
$ event -> startDateTime = Carbon Carbon:: now ();
$ event -> endDateTime = Carbon Carbon:: now ()-> addHour ();
$ event -> addAttendee ([
' email ' => ' [email protected] ' ,
' name ' => ' John Doe ' ,
' comment ' => ' Lorum ipsum ' ,
' responseStatus ' => ' needsAction ' ,
]);
$ event -> addAttendee ([ ' email ' => ' [email protected] ' ]);
$ event -> addMeetLink (); // optionally add a google meet link to the event
$ event -> save ();
// get all future events on a calendar
$ events = Event:: get ();
// update existing event
$ firstEvent = $ events -> first ();
$ firstEvent -> name = ' updated name ' ;
$ firstEvent -> save ();
$ firstEvent -> update ([ ' name ' => ' updated again ' ]);
// create a new event
Event:: create ([
' name ' => ' A new event ' ,
' startDateTime ' => Carbon Carbon:: now (),
' endDateTime ' => Carbon Carbon:: now ()-> addHour (),
]);
// delete an event
$ event -> delete ();Spatie adalah agen desain web yang berbasis di Antwerp, Belgia. Anda akan menemukan ikhtisar semua proyek open source kami di situs web kami.
Kami menginvestasikan banyak sumber daya untuk menciptakan paket open source terbaik di kelas. Anda dapat mendukung kami dengan membeli salah satu produk berbayar kami.
Kami sangat menghargai Anda mengirimi kami kartu pos dari kampung halaman Anda, menyebutkan paket mana yang Anda gunakan. Anda akan menemukan alamat kami di halaman kontak kami. Kami menerbitkan semua kartu pos yang diterima di dinding kartu pos virtual kami.
Anda dapat menginstal paket melalui komposer:
composer require spatie/laravel-google-calendarAnda harus mempublikasikan konfigurasi dengan perintah ini:
php artisan vendor:publish --provider= " SpatieGoogleCalendarGoogleCalendarServiceProvider " Ini akan menerbitkan file yang disebut google-calendar.php di konfigurasi-direktori Anda dengan konten ini:
return [
' default_auth_profile ' => env ( ' GOOGLE_CALENDAR_AUTH_PROFILE ' , ' service_account ' ),
' auth_profiles ' => [
/*
* Authenticate using a service account.
*/
' service_account ' => [
/*
* Path to the json file containing the credentials.
*/
' credentials_json ' => storage_path ( ' app/google-calendar/service-account-credentials.json ' ),
],
/*
* Authenticate with actual google user account.
*/
' oauth ' => [
/*
* Path to the json file containing the oauth2 credentials.
*/
' credentials_json ' => storage_path ( ' app/google-calendar/oauth-credentials.json ' ),
/*
* Path to the json file containing the oauth2 token.
*/
' token_json ' => storage_path ( ' app/google-calendar/oauth-token.json ' ),
],
],
/*
* The id of the Google Calendar that will be used by default.
*/
' calendar_id ' => env ( ' GOOGLE_CALENDAR_ID ' ),
];Hal pertama yang perlu Anda lakukan adalah mendapatkan kredensial untuk menggunakan API Google. Saya berasumsi bahwa Anda sudah membuat akun Google dan masuk. Buka konsol Google API dan klik "Pilih proyek" di header.

Selanjutnya kita harus menentukan API mana yang dapat dikonsumsi oleh proyek. Dari header, pilih "Aktifkan API dan Layanan".

Pada halaman berikutnya, cari "Kalender" dan pilih "Google Calendar API" dari daftar.

Dari sini, tekan "Aktifkan" untuk mengaktifkan API Kalender Google untuk proyek ini.

Sekarang setelah Anda membuat proyek yang memiliki akses ke API kalender saatnya mengunduh file dengan kredensial ini. Klik "Kredensial" di sidebar dan kemudian tekan tautan "Kredensial di API & Services".

Dari halaman ini, buka drop-down "Buat kredensial" dan pilih "Kunci Akun Layanan".

Di layar berikutnya, Anda dapat memberikan nama akun layanan. Anda dapat menamainya apa pun yang Anda inginkan. Di ID Akun Layanan Anda akan melihat alamat email. Kami akan menggunakan alamat email ini nanti di panduan ini. Pilih "JSON" sebagai jenis kunci dan klik "Buat" untuk mengunduh file JSON. Anda akan mendapatkan peringatan bahwa akun layanan tidak memiliki peran, Anda dapat dengan aman mengabaikan ini dan membuat akun layanan tanpa menetapkan peran.
Jika Anda telah mendelegasikan akses domain ke akun layanan dan Anda ingin menyamar sebagai akun pengguna, tentukan alamat email akun pengguna dalam file konfigurasi.

Simpan JSON di dalam proyek Laravel Anda di lokasi yang ditentukan dalam kunci service_account_credentials_json dari file konfigurasi paket ini. Karena file JSON berisi informasi yang berpotensi sensitif, saya tidak merekomendasikan untuk melakukannya ke repositori git Anda.
Sekarang semuanya sudah diatur di situs API, kita perlu mengkonfigurasi beberapa hal di situs Google Calendar. Pergilah ke Google Calendar dan lihat pengaturan kalender yang ingin Anda kerjakan melalui PHP. Pada tab "Bagikan dengan orang -orang tertentu" Tekan tombol "Tambah Orang" dan tambahkan ID Akun Layanan yang ditampilkan saat membuat kredensial di situs API.


Gulir ke bawah ke bagian "Integrate Calendar" untuk melihat ID kalender. Anda perlu menentukan ID itu di file konfigurasi.

Paket ini mendukung otentikasi OAuth2. Ini memungkinkan Anda untuk mengotentikasi dengan akun Google yang sebenarnya, dan untuk membuat dan mengelola acara dengan akun Google Anda sendiri.
OAuth2 Authentication membutuhkan file token, selain file kredensial. Cara termudah untuk menghasilkan kedua file ini adalah dengan menggunakan alat PHP QuickStart. Mengikuti panduan ini akan menghasilkan dua file, credentials.json dan token.json . Mereka harus disimpan untuk proyek Anda masing-masing sebagai oauth-credentials.json dan oauth-token.json . Periksa file konfigurasi dalam paket ini untuk detail yang tepat tentang tempat menyimpan file -file ini.
Untuk menggunakan OAuth2, Anda juga harus mengatur variabel lingkungan baru di file .env Anda:
GOOGLE_CALENDAR_AUTH_PROFILE =oauthJika Anda meningkatkan dari versi yang lebih lama dari paket ini, Anda harus memaksa penerbitan konfigurasi:
php artisan vendor:publish --provider= " SpatieGoogleCalendarGoogleCalendarServiceProvider " --forceAkhirnya, untuk pengalaman yang lebih mulus dalam aplikasi Anda, alih -alih menggunakan alat QuickStart, Anda dapat mengatur layar persetujuan di konsol Google API. Ini akan memungkinkan pengguna non-teknis dari aplikasi Anda untuk dengan mudah menghasilkan token mereka sendiri. Ini sepenuhnya opsional.
Anda dapat mengambil semua acara dengan hanya menelepon Event::get(); Ini akan mengembalikan semua acara tahun mendatang. Suatu peristiwa hadir dalam bentuk objek SpatieGoogleCalendarEvent .
Tanda tangan lengkap dari fungsi ini adalah:
public static function get( Carbon $ startDateTime = null , Carbon $ endDateTime = null , array $ queryParameters = [], string $ calendarId = null ): Collection Parameter yang dapat Anda lewati dalam $queryParameters tercantum pada dokumentasi dalam list di Google Calendar API Docs.
Anda dapat menggunakan getters ini untuk mengambil tanggal mulai dan akhir sebagai instance karbon:
$ events = Event:: get ();
$ events [ 0 ]-> startDate ;
$ events [ 0 ]-> startDateTime ;
$ events [ 0 ]-> endDate ;
$ events [ 0 ]-> endDateTime ; Anda hanya bisa baru di SpatieGoogleCalendarEvent -Object
$ event = new Event ;
$ event -> name = ' A new event ' ;
$ event -> startDateTime = Carbon Carbon:: now ();
$ event -> endDateTime = Carbon Carbon:: now ()-> addHour ();
$ event -> save (); Anda juga dapat menelepon create secara statis:
Event:: create ([
' name ' => ' A new event ' ,
' startDateTime ' => Carbon Carbon:: now (),
' endDateTime ' => Carbon Carbon:: now ()-> addHour (),
]); Ini akan membuat acara dengan waktu awal dan akhir yang spesifik. Jika Anda ingin membuat acara sehari penuh, Anda harus menggunakan startDate dan endDate alih-alih startDateTime dan endDateTime .
$ event = new Event ;
$ event -> name = ' A new full day event ' ;
$ event -> startDate = Carbon Carbon:: now ();
$ event -> endDate = Carbon Carbon:: now ()-> addDay ();
$ event -> save ();Anda dapat membuat acara berdasarkan string teks sederhana seperti ini:
$ event = new Event ();
$ event -> quickSave ( ' Appointment at Somewhere on April 25 10am-10:25am ' );
// statically
Event:: quickCreate ( ' Appointment at Somewhere on April 25 10am-10:25am ' ); Google menetapkan ID unik untuk setiap acara. Anda bisa mendapatkan ID ini dengan mendapatkan acara menggunakan metode get dan mendapatkan properti id pada SpatieGoogleCalendarEvent -Object:
// get the id of the first upcoming event in the calendar .
$ eventId = Event:: get ()-> first ()-> id ;
// you can also get the id after creating the event , then you can save it to database .
$ event = new Event ;
$ newEvent = $ event -> save ();
echo $ newEvent -> id ; // display the event idAnda dapat menggunakan ID ini untuk mengambil satu acara dari Google:
Event:: find ( $ eventId ); Mudah, ubah saja beberapa properti dan hubungi save() :
$ event = Event:: find ( $ eventId );
$ event -> name = ' My updated title ' ;
$ event -> save ();Atau, Anda dapat menggunakan metode pembaruan:
$ event = Event:: find ( $ eventId );
$ event -> update ([ ' name ' => ' My updated title ' ]);Tidak ada apa -apa untuk itu!
$ event = Event:: find ( $ eventId );
$ event -> delete ();Anda dapat mengatur URL sumber di acara Anda, yang hanya terlihat oleh pencipta acara (lihat dokumen untuk lebih lanjut tentang properti sumber). Fungsi ini hanya berfungsi ketika diautentikasi melalui OAuth.
$ yourEvent -> source = [
' title ' => ' Test Source Title ' ,
' url ' => ' http://testsource.url ' ,
];Anda dapat mengatur warna tertentu untuk acara Anda (ColorID 1 hingga 11). Kemungkinannya terbatas pada definisi warna API Kalender Google. Anda dapat menemukannya di sini.
$ yourevent -> setColorId ( 11 );Google Calendar API menyediakan banyak opsi. Paket ini tidak mendukung semuanya. Misalnya, acara berulang tidak dapat dikelola dengan benar dengan paket ini. Jika Anda tetap membuat acara dengan nama dan tanggal Anda akan baik -baik saja.
Satu -satunya perbedaan utama antara v1 dan v2 adalah bahwa di bawah kap Google API V2 digunakan sebagai ganti V1. Berikut adalah langkah -langkah yang diperlukan untuk meningkatkan:
laravel-google-calendar menjadi google-calendarclient_secret_json ke service_account_credentials_json Silakan lihat Changelog untuk informasi lebih lanjut tentang apa yang telah berubah baru -baru ini.
composer test Silakan lihat berkontribusi untuk detailnya.
Jika Anda menemukan masalah terkait keamanan, silakan kirim email ke [email protected] alih-alih menggunakan pelacak masalah.
Terima kasih banyak kepada Sebastiaan Luca atas bantuannya yang besar membuat V2 dari paket ini.
Lisensi MIT (MIT). Silakan lihat file lisensi untuk informasi lebih lanjut.