Dieses Paket macht die Arbeit mit einem Google -Kalender zum Kinderspiel. Sobald es eingerichtet wurde, können Sie folgende Dinge tun:
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 ist eine Webdesign -Agentur mit Sitz in Antwerp, Belgien. Sie finden einen Überblick über alle unsere Open -Source -Projekte auf unserer Website.
Wir investieren viele Ressourcen in die Erstellung von Open -Source -Paketen in der Klasse. Sie können uns unterstützen, indem Sie eines unserer kostenpflichtigen Produkte kaufen.
Wir freuen uns sehr, dass Sie uns eine Postkarte aus Ihrer Heimatstadt schicken und erwähnen, welche unserer Pakete Sie verwenden. Sie finden unsere Adresse auf unserer Kontaktseite. Wir veröffentlichen alle erhaltenen Postkarten an unserer virtuellen Postkarte.
Sie können das Paket über Komponist installieren:
composer require spatie/laravel-google-calendarSie müssen die Konfiguration mit diesem Befehl veröffentlichen:
php artisan vendor:publish --provider= " SpatieGoogleCalendarGoogleCalendarServiceProvider " Dadurch wird eine Datei namens google-calendar.php in Ihrem Konfigurationsschutz mit diesen Inhalten veröffentlicht:
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 ' ),
];Das erste, was Sie tun müssen, ist, Anmeldeinformationen zu erhalten, um die API von Google zu verwenden. Ich gehe davon aus, dass Sie bereits ein Google -Konto erstellt haben und angemeldet sind. Gehen Sie zur Google API -Konsole und klicken Sie im Header auf "Wählen Sie ein Projekt aus".

Als nächstes müssen wir angeben, welche APIs das Projekt konsumieren kann. Wählen Sie aus der Header "APIs und Dienste aktivieren".

Suchen Sie auf der nächsten Seite nach "Kalender" und wählen Sie "Google Calendar API" aus der Liste.

Von hier aus drücken Sie "Aktivieren", um die Google -Kalender -API für dieses Projekt zu aktivieren.

Nachdem Sie ein Projekt erstellt haben, das Zugriff auf die Kalender -API hat, ist es Zeit, eine Datei mit diesen Anmeldeinformationen herunterzuladen. Klicken Sie in der Seitenleiste auf "Anmeldeinformationen" und drücken Sie dann den Link "Anmeldeinformationen im APIS & Services".

Öffnen Sie auf dieser Seite den Dropdown-Bereich "Anmeldeinformationen erstellen" und wählen Sie "Service-Account-Schlüssel".

Auf dem nächsten Bildschirm können Sie dem Servicekonto einen Namen geben. Sie können es alles nennen, was Sie möchten. In der Service -Konto -ID sehen Sie eine E -Mail -Adresse. Wir werden diese E -Mail -Adresse später in diesem Handbuch verwenden. Wählen Sie "JSON" als Schlüsseltyp und klicken Sie auf "Erstellen", um die JSON -Datei herunterzuladen. Sie erhalten eine Warnung, dass das Servicekonto keine Rolle spielt. Sie können dies sicher ignorieren und das Servicekonto erstellen, ohne eine Rolle zuzuweisen.
Wenn Sie den domänenweiten Zugriff auf das Servicekonto delegiert haben und sich als Benutzerkonto ausgeben möchten, geben Sie die E-Mail-Adresse des Benutzerkontos in der Konfigurationsdatei an.

Speichern Sie den JSON in Ihrem Laravel -Projekt an dem Ort, den in der Taste " service_account_credentials_json der Konfigurationsdatei dieses Pakets" angegeben ist. Da die JSON -Datei potenziell sensible Informationen enthält, empfehle ich nicht, sie für Ihr Git -Repository zu verpflichten.
Nachdem auf der API -Site alles eingerichtet ist, müssen wir einige Dinge auf der Google -Kalender -Site konfigurieren. Gehen Sie zum Google -Kalender und sehen Sie sich die Einstellungen des Kalenders an, mit dem Sie über PHP arbeiten möchten. Drücken Sie auf der Registerkarte "Mit bestimmten Personen teilen" die Schaltfläche "Personen hinzufügen" und fügen Sie die Service -Konto -ID hinzu, die beim Erstellen von Anmeldeinformationen auf der API -Site angezeigt wurde.


Scrollen Sie nach unten zum Abschnitt "Kalender integrieren", um die ID des Kalenders anzuzeigen. Sie müssen diese ID in der Konfigurationsdatei angeben.

Dieses Paket unterstützt die OAuth2 -Authentifizierung. Auf diese Weise können Sie sich mit einem tatsächlichen Google -Konto authentifizieren und Ereignisse mit Ihrem eigenen Google -Konto erstellen und verwalten.
Die OAuth2 -Authentifizierung erfordert zusätzlich zur Datei Anmeldeinformationen eine Token -Datei. Der einfachste Weg, um beide Dateien zu generieren, besteht darin, das PHP -QuickStart -Tool zu verwenden. Im Folgenden dieser Anleitung werden zwei Dateien generiert, credentials.json und token.json . Sie müssen in Ihrem Projekt als oauth-credentials.json bzw. oauth-token.json gespeichert werden. Überprüfen Sie die Konfigurationsdatei in diesem Paket für genaue Details zum Speichern dieser Dateien.
Um OAuth2 zu verwenden, müssen Sie auch eine neue Umgebungsvariable in Ihrer .env -Datei festlegen:
GOOGLE_CALENDAR_AUTH_PROFILE =oauthWenn Sie von einer älteren Version dieses Pakets aktualisieren, müssen Sie eine Veröffentlichung der Konfiguration erzwingen:
php artisan vendor:publish --provider= " SpatieGoogleCalendarGoogleCalendarServiceProvider " --forceSchließlich können Sie für eine nahtlosere Erfahrung in Ihrer Anwendung anstatt das QuickStart -Tool zu verwenden, einen Einwilligungsbildschirm in der Google -API -Konsole einrichten. Auf diese Weise würde nicht-technische Benutzer Ihrer Anwendung einfach ihre eigenen Token generieren. Dies ist völlig optional.
Sie können alle Ereignisse holen, indem Sie einfach Event::get(); Dies wird alle Ereignisse des kommenden Jahres zurückgeben. Ein Ereignis erfolgt in Form eines SpatieGoogleCalendarEvent Ereignisobjekts.
Die vollständige Signatur der Funktion ist:
public static function get( Carbon $ startDateTime = null , Carbon $ endDateTime = null , array $ queryParameters = [], string $ calendarId = null ): Collection Die Parameter, die Sie in $queryParameters übergeben können, sind in der Liste der Dokumentation der list der API -API -Dokumente von Google aufgeführt.
Sie können diese Getter verwenden, um Start- und Enddatum als Kohlenstoffinstanzen abzurufen:
$ events = Event:: get ();
$ events [ 0 ]-> startDate ;
$ events [ 0 ]-> startDateTime ;
$ events [ 0 ]-> endDate ;
$ events [ 0 ]-> endDateTime ; Sie können einfach einen SpatieGoogleCalendarEvent -object aufbauen
$ event = new Event ;
$ event -> name = ' A new event ' ;
$ event -> startDateTime = Carbon Carbon:: now ();
$ event -> endDateTime = Carbon Carbon:: now ()-> addHour ();
$ event -> save (); Sie können auch statisch create :
Event:: create ([
' name ' => ' A new event ' ,
' startDateTime ' => Carbon Carbon:: now (),
' endDateTime ' => Carbon Carbon:: now ()-> addHour (),
]); Dadurch wird ein Ereignis mit einer bestimmten Start- und Endzeit erstellt. Wenn Sie ein ganztägiges Ereignis erstellen möchten, müssen Sie startDate und endDate anstelle von startDateTime und endDateTime verwenden.
$ event = new Event ;
$ event -> name = ' A new full day event ' ;
$ event -> startDate = Carbon Carbon:: now ();
$ event -> endDate = Carbon Carbon:: now ()-> addDay ();
$ event -> save ();Sie können ein Ereignis erstellen, das auf einer einfachen Textzeichenfolge wie folgt basiert:
$ 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 weist jedem einzelnen Ereignis eine eindeutige ID zu. Sie können diese ID erhalten, indem Sie Ereignisse mithilfe der get -Methode und der id -Eigenschaft auf einem SpatieGoogleCalendarEvent -object: erhalten:
// 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 idSie können diese ID verwenden, um ein einzelnes Ereignis von Google zu holen:
Event:: find ( $ eventId ); Einfach, ändern Sie einfach einige Eigenschaften und rufen Sie save() an:
$ event = Event:: find ( $ eventId );
$ event -> name = ' My updated title ' ;
$ event -> save ();Alternativ können Sie die Aktualisierungsmethode verwenden:
$ event = Event:: find ( $ eventId );
$ event -> update ([ ' name ' => ' My updated title ' ]);Nichts dafür!
$ event = Event:: find ( $ eventId );
$ event -> delete ();Sie können Quell -URLs in Ihren Ereignissen festlegen, die nur für den Schöpfer des Ereignisses sichtbar sind (weitere Informationen zur Quelleigenschaft finden Sie unter Dokumenten). Diese Funktion funktioniert nur, wenn sie über OAuth authentifiziert werden.
$ yourEvent -> source = [
' title ' => ' Test Source Title ' ,
' url ' => ' http://testsource.url ' ,
];Sie können bestimmte Farben für Ihre Ereignisse festlegen (farbig 1 bis 11). Die Möglichkeiten beschränken sich auf die Farbdefinitionen der Google -Kalender -API. Sie können sie hier finden.
$ yourevent -> setColorId ( 11 );Die Google -Kalender -API bietet viele Optionen. Dieses Paket unterstützt sie nicht alle. Beispielsweise können wiederkehrende Ereignisse mit diesem Paket nicht ordnungsgemäß verwaltet werden. Wenn Sie sich beim Erstellen von Ereignissen mit einem Namen und einem Datum halten, sollte es Ihnen gut gehen.
Der einzige große Unterschied zwischen v1 und v2 besteht darin, dass unter der Haube Google API V2 anstelle von V1 verwendet wird. Hier sind die für ein Upgrade erforderlichen Schritte:
laravel-google-calendar in google-calendar umclient_secret_json in service_account_credentials_json um Weitere Informationen zu dem, was sich in letzter Zeit geändert hat, finden Sie unter ChangeLog.
composer test Weitere Informationen finden Sie unter Beitrag.
Wenn Sie Probleme im Zusammenhang mit Sicherheitsgründen entdecken, senden Sie bitte eine E-Mail an [email protected], anstatt den Ausgabe-Tracker zu verwenden.
Ein großes Dankeschön an Sebastiaan Luca für seine große Hilfe für die Erstellung von V2 dieses Pakets.
Die MIT -Lizenz (MIT). Weitere Informationen finden Sie unter Lizenzdatei.