Connectez Google Agenda à l'application Django

WBOY
Libérer: 2024-08-16 18:01:43
original
935 Les gens l'ont consulté

Connect Google Calendar to Django Application

Un guide étape par étape pour intégrer de manière transparente Google Agenda à votre application Django pour une planification et une gestion améliorées des événements.

L'intégration de Google Agenda à votre application Django peut améliorer considérablement les fonctionnalités de votre application Web en permettant la planification, la gestion des événements et la synchronisation du calendrier. Ce guide vous guidera à travers les étapes pour connecter Google Agenda à votre application Django, couvrant tout, de la configuration des informations d'identification de l'API Google à la mise en œuvre du code nécessaire dans Django.

Conditions préalables

Avant de commencer, assurez-vous d'avoir les éléments suivants :

1. Application Django : Une application Django fonctionnelle.

2. Compte Google API Console : Accès à Google Cloud Console.

3. API Google Calendar activée : L'API Google Calendar doit être activée pour votre projet dans Google Cloud Console.


Étape 1 : Configurer le projet Google Cloud

1. Créer un projet :
Accédez à Google Cloud Console et créez un nouveau projet.

2. Activer l'API Google Agenda :
Accédez à « API et services » > "Bibliothèque" et recherchez "API Google Calendar". Activez-le pour votre projet.

3. Configurer l'écran de consentement :

  • Accédez à « API et services » > «Écran de consentement OAuth» et configurez l'écran de consentement.
  • Sélectionnez maintenant le type d'OAuth que vous souhaitez (Externe dans ce cas car l'application serait accessible à toute personne possédant un compte Google).
  • Définissez toutes les données de l'écran de consentement, telles que le nom de l'application, le logo, l'e-mail d'assistance, etc., selon vos besoins.
  • Cliquez sur « Ajouter ou supprimer des étendues » et ajoutez les étendues suivantes, …/auth/userinfo.email , …/auth/userinfo.profile, openid pour accéder aux informations utilisateur et à toutes les étendues de l'API Google Calendar pour accéder au calendrier Google. de l'utilisateur. Cliquez ensuite sur Mettre à jour pour enregistrer.
  • Suivant Ajouter des utilisateurs test. Étant donné que notre application n'est pas encore vérifiée par Google, seuls les utilisateurs de cette liste pourront s'inscrire à ce projet Google. Ajoutez donc tous les e-mails de test que vous utiliseriez pour tester l'intégration du calendrier Google. Une fois terminé, continuez à créer des informations d'identification.

4. Créer des informations d'identification OAuth :
Accédez à « API et services » > « Credentials » et créez des informations d'identification. Sélectionnez ID client OAuth comme type d'informations d'identification. Définissez l'application Web comme type d'application et remplissez les détails de l'application.

  • URI de redirection autorisés : ajoutez l'URL de redirection pour votre application Django (par exemple, http://localhost:8000/oauth2callback pour le développement local).

5. Téléchargez les informations d'identification JSON :
Téléchargez le fichier JSON des informations d'identification OAuth 2.0 et conservez-le en sécurité. Ce fichier contient votre client_id, client_secret et d'autres informations importantes.


Étape 2 : Installer les packages Python requis

Vous aurez besoin de quelques packages Python pour interagir avec les API Google :

pip install google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client
Copier après la connexion

Étape 3 : Configurer les paramètres de Django

Mettez à jour votre settings.py avec ce qui suit :

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
Copier après la connexion

Étape 4 : Créer un flux OAuth2

Créez une vue pour gérer le flux OAuth2 :

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}
Copier après la connexion

Étape 5 : Gérer les requêtes de l'API Google Agenda

Une fois le flux OAuth2 terminé, vous pouvez envoyer des requêtes authentifiées à l'API Google Calendar. Voici un exemple simple pour répertorier les événements de l'agenda de l'utilisateur :

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)
Copier après la connexion

Étape 6 : Mettre à jour les URL

Ajoutez les URL des vues dans votre urls.py :

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'),
]
Copier après la connexion

Étape 7 : Exécuter et tester

  1. Démarrez votre serveur Django :
    Exécutez votre serveur de développement Django à l'aide de python manage.py runserver.

  2. Authentifier :
    Accédez à /google-calendar/init/ dans votre navigateur. Vous serez redirigé vers la page de consentement OAuth2 de Google.

  3. Accès aux événements :
    Après l'authentification, accédez à /google-calendar/events/ pour afficher vos événements Google Agenda.

Conclusion

L'intégration de Google Agenda à votre application Django vous permet de créer de puissantes fonctionnalités de planification directement dans votre application. En suivant ce guide, vous avez configuré l'authentification OAuth2, connecté à l'API Google Calendar et récupéré les événements du calendrier. Vous pouvez désormais étendre cette intégration pour inclure la création d'événements, les mises à jour et d'autres fonctionnalités de gestion de calendrier selon vos besoins.

PS : N'oubliez pas de gérer les informations d'identification en toute sécurité et d'assurer une gestion appropriée des erreurs pour une application robuste.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal