Google Kalender - Zugriffsberechtigung

9

Ist es mir möglich, eine Anwendung zu erstellen, die unsere Anfragen zum Zugriff auf den Google-Kalender der Nutzer senden kann, sodass ich die darin enthaltenen Ereignisse sehen und Ereignisse hinzufügen, bearbeiten und löschen kann?

Ich möchte nicht, dass sich die Benutzer auf meiner Website anmelden, um diesen Zugriff zu ermöglichen. Ich möchte diese Anfrage vielleicht per E-Mail senden können.

Alternativ könnten sie sich vielleicht auch in die Web-App einloggen und den Zugriff selbst irgendwie autorisieren.

    
StackOverflowNewbie 24.09.2015, 09:56
quelle

2 Antworten

4

Eine Option wäre, dem Benutzer eine E-Mail mit dem OAuth 2.0-Zustimmungsbildschirm zu senden. Die Benutzer müssen den Link in einem Browser öffnen, sich in ihrem Google-Konto anmelden (sofern noch nicht angemeldet) und auf die Schaltfläche "Autorisieren" klicken, um Ihrer Anwendung Zugriff auf ihre Google-Kalenderereignisse zu gewähren.

Zunächst müssen Sie Ihre Anwendung als Web-App in der Google Developer Console registrieren (wie für jede andere Anwendung) und erhalten 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.

Folgen Sie dann diesen Schritten:

  1. Senden Sie dem Benutzer einen Autorisierungslink in einer HTML-E-Mail-Nachricht. Der Link sollte gemäß den Richtlinien in "Weiterleitung an den OAuth 2.0-Server von Google" erstellt werden und darauf achten zu den folgenden Aspekten:

    • Stellen Sie sicher, dass der Parameter redirect_uri im Autorisierungslink auf Ihre Anwendung verweist.
    • 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: stellt einen Wert im Parameter state bereit, damit Sie diese Autorisierungsanforderung mit dem Benutzer verknüpfen können.
    • Der Link sollte irgendwo im Textkörper der E-Mail in einem <a> -Tag stehen: <a href="{auth_url}">Allow access to my Google calendar</a>
  2. Wenn der Nutzer auf diesen Link klickt, wird sein Browser geöffnet und zeigt den standardmäßigen Google-Zustimmungsbildschirm an:

    Sobald der Benutzer eine Auswahl getroffen hat, wird sein Browser auf das von Ihnen bereitgestellte redirect_uri umgeleitet.

  3. Stellen Sie sicher, dass redirect_uri auch dann funktioniert, wenn der Benutzer nicht in Ihrer Anwendung angemeldet ist. Erfassen Sie die Werte state und authorization_code , die Google an redirect_uri angehängt hat, und geben Sie dann eine Bestätigungsseite zurück (z. B. "Vielen Dank, dass Sie uns Zugriff auf Ihren Google Kalender gewährt haben") Idee).

  4. Verwenden Sie die Werte state und authorization_code , folgen Sie dem Rest des OAuth 2.0-Standardflusses und rufen Sie refresh_token ab, mit denen Sie von Ihrer Anwendung aus auf den Google-Kalender des Benutzers zugreifen können.

Beachten Sie, dass der Kalendereigentümer (der Benutzer, der auf den Link in der E-Mail klickt und Ihrer Bewerbung die Zustimmung zum Zugriff auf den Kalender erteilt) möglicherweise nicht einmal ein Nutzer Ihrer Anwendung ist. 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 Einwilligung 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, über den sie zum Zustimmungsbildschirm zurückkehren. Dies sollte Ihre Erfolgsquote erhöhen.

    
kiwidrew 17.11.2015 06:57
quelle
0
  

Jede Anforderung, die Ihre Anwendung an die Google Kalender-API sendet, muss   ein Autorisierungstoken einschließen Der Token identifiziert auch Ihre   Anwendung bei Google.

     

Ihre Anwendung muss OAuth 2.0 verwenden, um Anforderungen zu autorisieren. Kein anderer   Berechtigungsprotokolle werden unterstützt. Wenn Ihre Anwendung verwendet wird   Mit Google+ Sign-In werden einige Aspekte der Autorisierung für Sie erledigt.

     

Die Details zum Autorisierungsprozess oder "Flow" für OAuth 2.0   variieren je nach Art der Anwendung, die Sie schreiben.

Weitere Informationen zum Zugriff auf den Workflow erhalten Sie hier . Sobald Ihre App Zugriff hat, kann sie die Kalenderereignisse eines Benutzers abhängig von den genehmigten Berechtigungen anzeigen und bearbeiten.

    
johnnieb 10.11.2015 20:24
quelle