Eine Option wäre, dem Benutzer einen Link zum OAuth 2.0-Zustimmungsbildschirm per E-Mail zu senden. Die Benutzer müssen den Link in einem Browser öffnen, sich in ihrem Google-Konto anmelden (falls noch nicht angemeldet) und auf die Schaltfläche "Autorisieren" klicken, um Ihrer Anwendung Zugriff auf ihre Google-Kalenderereignisse zu gewähren.
Zuerst müssen Sie Ihre Anwendung als Web-App in der Google Developer Console registrieren (wie für jede andere Anwendung) und erhalten Sie eine client_id
. Geben Sie im Abschnitt "OAuth-Zustimmungsbildschirm" unbedingt den Namen Ihrer Anwendung und einen Link zu Ihrer Website ein, da diese Werte Ihren Nutzern angezeigt werden, wenn sie auf den Autorisierungslink klicken.
Dann gehen Sie folgendermaßen vor:
Senden der Benutzer eine Berechtigung Link in einer HTML-E-Mail-Nachricht. Der Link soll nach den Richtlinien in "Redirecting to Google's OAuth 2.0 server" konstruiert werden, und achten Sie auf die folgenden Aspekte:
- Stellen Sie sicher, dass die
redirect_uri
Parameter in der Berechtigungs Link auf Ihre Anwendung.
- Da Sie die E-Mail-Adresse des Benutzers bereits kennen, sollten Sie den Parameter
login_hint=<email address>
berücksichtigen, um den Bildschirm zur Kontoauswahl zu umgehen.
- Wichtig: Geben Sie einen Wert im Parameter
state
ein, damit Sie diese Autorisierungsanforderung mit dem Benutzer verknüpfen können.
- Der Link sollte in einem
<a>
Tag irgendwo in den Körper der E-Mail gestellt werden: <a href="{auth_url}">Allow access to my Google calendar</a>
Wenn der Benutzer klickt auf diesen Link, den Browser öffnen und zeigen die Standard Google Zustimmung Bildschirm:
Sobald der Benutzer eine Auswahl getroffen hat, wird sein Browser an die redirect_uri
weitergeleitet, die Sie bereitgestellt haben.
Stellen Sie sicher, dass redirect_uri
funktioniert, auch wenn der Benutzer nicht in Ihrer Anwendung angemeldet ist. Erfassen Sie die Werte state
und authorization_code
, die Google an die redirect_uri
anfügt, und geben Sie dann eine Bestätigungsseite zurück (z. B. "Vielen Dank, dass Sie uns Zugriff auf Ihren Google Kalender gewährt haben" wäre eine gute Idee).
die state
und authorization_code
Werte verwenden, folgen Sie den Rest des Standard OAuth 2.0 Fluss und eine refresh_token
abrufen, die es Ihnen erlaubt, die Google Kalender des Benutzers zugreifen aus Ihrer Anwendung.
Denken Sie daran, dass der Kalenderbesitzer (der Benutzer, der den Link in der E-Mail klickt und Ihre Anwendung Erteilung der Genehmigung die Kalender zuzugreifen) nicht einmal ein Benutzer Ihrer Anwendung sein kann. Aus diesem Grund ist es wichtig, so viele Informationen wie möglich auf dem Zustimmungsbildschirm und auf der Bestätigungsseite anzugeben.
Da Ihre Bestätigungsseite geladen wird, selbst wenn der Benutzer Ihre Einverständniserklärung nicht erteilt, können Sie die Gelegenheit nutzen, dem Benutzer eine vollständige Beschreibung zu geben, warum Sie um Zugriff auf seinen Kalender bitten und einen Link bereitstellen Das bringt sie zurück zum Zustimmungsbildschirm. Dies sollte Ihre Erfolgsquote erhöhen.
Erstellen Sie ein Ereignis in Ihrem Google-Kalender, fügen Sie die E-Mail-Adresse des Benutzers als Teilnehmer für das Ereignis mit Benachrichtigung hinzu. Der Benutzer entscheidet dann, ob er ihn zu seinem Kalender hinzufügen möchte. – DaImTo
Nicht gut. Ich möchte den Kalender des Benutzers sehen, damit ich nicht den Fehler erstelle, ein Ereignis zu erstellen, das mit dem Kalender des Benutzers in Konflikt steht. Denken Sie an Termineinstellung System. – StackOverflowNewbie
Wenn Sie ihren Kalender sehen wollen, müssen sie Ihnen die Erlaubnis geben, dies zu tun, und Sie müssen Oauth2 verwenden und sie authentifizieren. – DaImTo