Verbinden Sie Google Kalender mit der Django-Anwendung

WBOY
Freigeben: 2024-08-16 18:01:43
Original
660 Leute haben es durchsucht

Connect Google Calendar to Django Application

Eine Schritt-für-Schritt-Anleitung zur nahtlosen Integration von Google Kalender in Ihre Django-Anwendung für eine verbesserte Terminplanung und Veranstaltungsverwaltung.

Durch die Integration von Google Kalender in Ihre Django-Anwendung können Sie die Funktionalität Ihrer Web-App erheblich verbessern, indem Sie Terminplanung, Ereignisverwaltung und Kalendersynchronisierung ermöglichen. Dieser Leitfaden führt Sie durch die Schritte zum Verbinden von Google Kalender mit Ihrer Django-Anwendung und deckt alles ab, von der Einrichtung der Google API-Anmeldeinformationen bis zur Implementierung des erforderlichen Codes in Django.

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:

1. Django-Anwendung:Eine funktionierende Django-Anwendung.

2. Google API Console-Konto:Zugriff auf die Google Cloud Console.

3. Google Kalender-API aktiviert:Die Google Kalender-API sollte für Ihr Projekt in der Google Cloud Console aktiviert sein.


Schritt 1: Richten Sie das Google Cloud-Projekt ein

1. Erstellen Sie ein Projekt:
Gehen Sie zur Google Cloud Console und erstellen Sie ein neues Projekt.

2. Aktivieren Sie die Google Kalender-API:
Navigieren Sie zu „API & Dienste“ > „Bibliothek“ und suchen Sie nach „Google Calendar API“. Aktivieren Sie es für Ihr Projekt.

3. Einwilligungsbildschirm konfigurieren:

  • Navigieren Sie zu „API & Dienste“ > „OAuth-Zustimmungsbildschirm“ und konfigurieren Sie den Zustimmungsbildschirm.
  • Wählen Sie nun den gewünschten OAuth-Typ aus (in diesem Fall extern, da die Anwendung für jeden zugänglich wäre, der über ein Google-Konto verfügt).
  • Legen Sie alle Daten für den Einwilligungsbildschirm wie App-Name, Logo, Support-E-Mail usw. nach Bedarf fest.
  • Klicken Sie auf „Bereiche hinzufügen oder entfernen“ und fügen Sie die folgenden Bereiche hinzu: …/auth/userinfo.email, …/auth/userinfo.profile, openid, um auf Benutzerinformationen zuzugreifen, und alle Google Calendar API-Bereiche, um auf den Google-Kalender des Benutzers zuzugreifen . Klicken Sie dann zum Speichern auf „Aktualisieren“.
  • Weiter Testbenutzer hinzufügen. Da unsere Anwendung noch nicht von Google überprüft wurde, könnten sich nur die Benutzer in dieser Liste für dieses Google-Projekt registrieren. Fügen Sie also alle Test-E-Mails hinzu, die Sie zum Testen der Google-Kalender-Integration verwenden würden. Sobald Sie fertig sind, erstellen Sie weiterhin Anmeldeinformationen.

4. Erstellen Sie OAuth-Anmeldeinformationen:
Gehen Sie zu „API & Dienste“ > „Anmeldeinformationen“ und erstellen Sie Anmeldeinformationen. Wählen Sie die OAuth-Client-ID als Art der Anmeldeinformationen aus. Legen Sie Webanwendung als Anwendungstyp fest und geben Sie die Anwendungsdetails ein.

  • Autorisierte Weiterleitungs-URIs: Fügen Sie die Weiterleitungs-URL für Ihre Django-Anwendung hinzu (z. B. http://localhost:8000/oauth2callback für die lokale Entwicklung).

5. JSON-Anmeldeinformationen herunterladen:
Laden Sie die JSON-Datei mit den OAuth 2.0-Anmeldeinformationen herunter und bewahren Sie sie sicher auf. Diese Datei enthält Ihre client_id, client_secret und andere wichtige Informationen.


Schritt 2: Erforderliche Python-Pakete installieren

Sie benötigen ein paar Python-Pakete, um mit Google APIs zu interagieren:

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
Nach dem Login kopieren

Schritt 3: Django-Einstellungen konfigurieren

Aktualisieren Sie Ihre Settings.py mit Folgendem:

import os # Google Calendar API GOOGLE_CLIENT_SECRETS_FILE = os.path.join(BASE_DIR, 'path/to/client_secret.json') GOOGLE_API_SCOPES = ['https://www.googleapis.com/auth/calendar'] REDIRECT_URI = 'http://localhost:8000/oauth2callback' # Or your production URL
Nach dem Login kopieren

Schritt 4: OAuth2-Flow erstellen

Erstellen Sie eine Ansicht zur Verarbeitung des OAuth2-Flusses:

from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import Flow from django.shortcuts import redirect from django.http import HttpResponse from django.conf import settings def google_calendar_init(request): flow = Flow.from_client_secrets_file( settings.GOOGLE_CLIENT_SECRETS_FILE, scopes=settings.GOOGLE_API_SCOPES, redirect_uri=settings.REDIRECT_URI ) authorization_url, state = flow.authorization_url( access_type='offline', include_granted_scopes='true' ) request.session['state'] = state return redirect(authorization_url) def google_calendar_redirect(request): state = request.session['state'] flow = Flow.from_client_secrets_file( settings.GOOGLE_CLIENT_SECRETS_FILE, scopes=settings.GOOGLE_API_SCOPES, state=state, redirect_uri=settings.REDIRECT_URI ) flow.fetch_token(authorization_response=request.build_absolute_uri()) credentials = flow.credentials request.session['credentials'] = credentials_to_dict(credentials) return HttpResponse('Calendar integration complete. You can now use Google Calendar with your Django app.') def credentials_to_dict(credentials): return {'token': credentials.token, 'refresh_token': credentials.refresh_token, 'token_uri': credentials.token_uri, 'client_id': credentials.client_id, 'client_secret': credentials.client_secret, 'scopes': credentials.scopes}
Nach dem Login kopieren

Schritt 5: Google Kalender-API-Anfragen bearbeiten

Sobald der OAuth2-Ablauf abgeschlossen ist, können Sie authentifizierte Anfragen an die Google Calendar API stellen. Hier ist ein einfaches Beispiel, um die Kalenderereignisse des Benutzers aufzulisten:

from googleapiclient.discovery import build def list_events(request): credentials = Credentials(**request.session['credentials']) service = build('calendar', 'v3', credentials=credentials) events_result = service.events().list(calendarId='primary', maxResults=10).execute() events = events_result.get('items', []) return HttpResponse(events)
Nach dem Login kopieren

Schritt 6: URLs aktualisieren

Fügen Sie die URLs für die Ansichten in Ihrer urls.py hinzu:

from django.urls import path from . import views urlpatterns = [ path('google-calendar/init/', views.google_calendar_init, name='google_calendar_init'), path('oauth2callback/', views.google_calendar_redirect, name='google_calendar_redirect'), path('google-calendar/events/', views.list_events, name='list_events'), ]
Nach dem Login kopieren

Schritt 7: Ausführen und testen

  1. Starten Sie Ihren Django-Server:
    Führen Sie Ihren Django-Entwicklungsserver mit python manage.py runserver aus.

  2. Authentifizierung:
    Navigieren Sie in Ihrem Browser zu /google-calendar/init/. Sie werden zur OAuth2-Einwilligungsseite von Google weitergeleitet.

  3. Zugriffsereignisse:
    Gehen Sie nach der Authentifizierung zu /google-calendar/events/, um Ihre Google Kalender-Ereignisse anzuzeigen.

Abschluss

Durch die Integration von Google Kalender in Ihre Django-Anwendung können Sie leistungsstarke Planungsfunktionen direkt in Ihrer App erstellen. Wenn Sie dieser Anleitung folgen, haben Sie die OAuth2-Authentifizierung eingerichtet, eine Verbindung zur Google Calendar API hergestellt und Kalenderereignisse abgerufen. Sie können diese Integration jetzt nach Bedarf um die Erstellung von Ereignissen, Aktualisierungen und andere Kalenderverwaltungsfunktionen erweitern.

PS: Denken Sie daran, die Anmeldeinformationen sicher zu behandeln und eine ordnungsgemäße Fehlerbehandlung für eine robuste Anwendung sicherzustellen.

Das obige ist der detaillierte Inhalt vonVerbinden Sie Google Kalender mit der Django-Anwendung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!