„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Verbinden Sie Google Kalender mit der Django-Anwendung

Verbinden Sie Google Kalender mit der Django-Anwendung

Veröffentlicht am 07.11.2024
Durchsuche:878

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 von der Einrichtung der Google API-Anmeldeinformationen bis zur Implementierung des erforderlichen Codes in Django ab.

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 Calendar API aktiviert: Die Google Calendar 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 Kalender 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 Kalender-API-Bereiche, um auf den Google-Kalender zuzugreifen des Benutzers. 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. OAuth-Anmeldeinformationen erstellen:
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 füllen Sie die Anwendungsdetails aus.

  • Autorisierte Umleitungs-URIs: Fügen Sie die Umleitungs-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 einige Python-Pakete, um mit Google APIs zu interagieren:

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client

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

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}

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)

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'),
]

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.

Freigabeerklärung Dieser Artikel wird unter: https://dev.to/karanjot_s/connect-google-calendar-to-django-application-3787?1 reproduziert.
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3