2015-09-24 22 views
9

Ist es mir möglich, eine Anwendung zu erstellen, die unsere Anfragen zum Zugriff auf Google Kalender senden kann, damit ich die Ereignisse dort sehen und Ereignisse hinzufügen, bearbeiten und löschen kann ?Google Kalender - Zugriffsberechtigung

Ich möchte nicht, dass die Benutzer sich 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 in der Web-App anmelden und den Zugriff selbst irgendwie autorisieren.

+0

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

+0

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

+1

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

Antwort

0

Jede Anforderung, die Ihre Anwendung an die Google Kalender-API sendet, muss ein Autorisierungstoken enthalten. Das Token identifiziert auch Ihre Anwendung bei Google.

Ihre Anwendung muss OAuth 2.0 verwenden, um Anforderungen zu autorisieren. Keine anderen Autorisierungsprotokolle werden unterstützt. Wenn Ihre Anwendung Google+ Anmeldung verwendet, werden einige Aspekte der Autorisierung für Sie behandelt.

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

Weitere Informationen zum Arbeitsablauf für den Zugriff erhalten Sie unter here. Sobald Ihre App Zugriff hat, kann sie die Kalenderereignisse eines Benutzers abhängig von den genehmigten Berechtigungen anzeigen und bearbeiten.

4

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:

  1. 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>
  2. Wenn der Benutzer klickt auf diesen Link, den Browser öffnen und zeigen die Standard Google Zustimmung Bildschirm:

    Google OAuth 2.0 consent screen (example) Sobald der Benutzer eine Auswahl getroffen hat, wird sein Browser an die redirect_uri weitergeleitet, die Sie bereitgestellt haben.

  3. 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).

  4. 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.