"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Conecte Google Calendar a la aplicación Django

Conecte Google Calendar a la aplicación Django

Publicado el 2024-11-07
Navegar:382

Connect Google Calendar to Django Application

Una guía paso a paso para integrar perfectamente Google Calendar con su aplicación Django para mejorar la programación y la gestión de eventos.

Integrar Google Calendar con tu aplicación Django puede mejorar significativamente la funcionalidad de tu aplicación web al permitir la programación, la gestión de eventos y la sincronización del calendario. Esta guía lo guiará a través de los pasos para conectar Google Calendar a su aplicación Django, cubriendo todo, desde configurar las credenciales de la API de Google hasta implementar el código necesario en Django.

Requisitos previos

Antes de comenzar, asegúrese de tener lo siguiente:

1. Aplicación Django: Una aplicación Django funcional.

2. Cuenta de Consola API de Google: Acceso a Google Cloud Console.

3. API de Google Calendar habilitada: La API de Google Calendar debe estar habilitada para su proyecto en Google Cloud Console.


Paso 1: configurar el proyecto Google Cloud

1. Crear un proyecto:
Vaya a Google Cloud Console y cree un nuevo proyecto.

2. Habilitar la API de Google Calendar:
Navegue hasta "API y servicios" > "Biblioteca" y busque "API de Google Calendar". Habilítelo para su proyecto.

3. Configurar pantalla de consentimiento:

  • Navega a “API y servicios” > “Pantalla de consentimiento de OAuth” y configura la pantalla de consentimiento.
  • Ahora seleccione el tipo de OAuth que desea (Externo en este caso, ya que cualquier persona que tenga una cuenta de Google podría acceder a la aplicación).
  • Establezca todos los datos para la pantalla de consentimiento, como el nombre de la aplicación, el logotipo, el correo electrónico de soporte, etc., según sea necesario.
  • Haga clic en “Agregar o eliminar alcances” y agregue los siguientes alcances, …/auth/userinfo.email, …/auth/userinfo.profile, openid para acceder a la información del usuario y todos los alcances de la API de Google Calendar para acceder al calendario de Google. de usuario. Luego haga clic en Actualizar para guardar.
  • Siguiente Agregar usuarios de prueba. Dado que Google aún no ha verificado nuestra aplicación, solo los usuarios de esta lista podrán registrarse en este proyecto de Google. Así que agregue todos los correos electrónicos de prueba que usaría para probar la integración del calendario de Google. Una vez hecho esto, continúe creando credenciales.

4. Crear credenciales OAuth:
Vaya a "API y servicios" > "Credenciales" y cree credenciales. Seleccione ID de cliente de OAuth como tipo de credenciales. Establezca la aplicación web como tipo de aplicación y complete los detalles de la aplicación.

  • URI de redireccionamiento autorizados: agregue la URL de redireccionamiento para su aplicación Django (por ejemplo, http://localhost:8000/oauth2callback para desarrollo local).

5. Descargar credenciales JSON:
Descargue el archivo JSON de credenciales de OAuth 2.0 y manténgalo seguro. Este archivo contiene su client_id, client_secret y otra información importante.


Paso 2: instale los paquetes de Python necesarios

Necesitarás algunos paquetes de Python para interactuar con las API de Google:

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

Paso 3: configurar los ajustes de Django

Actualiza tu configuración.py con lo siguiente:

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

Paso 4: crear flujo OAuth2

Crear una vista para manejar el flujo de 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}

Paso 5: Manejar las solicitudes de API de Google Calendar

Una vez que se completa el flujo de OAuth2, puede realizar solicitudes autenticadas a la API de Google Calendar. A continuación se muestra un ejemplo sencillo para enumerar los eventos del calendario del usuario:

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)

Paso 6: actualizar las URL

Agregue las URL para las vistas en su 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'),
]

Paso 7: ejecutar y probar

  1. Inicie su servidor Django:
    Ejecute su servidor de desarrollo Django usando python Manage.py RunServer.

  2. Autenticar:
    Navegue hasta /google-calendar/init/ en su navegador. Serás redirigido a la página de consentimiento de OAuth2 de Google.

  3. Acceder a eventos:
    Después de la autenticación, ve a /google-calendar/events/ para ver tus eventos de Google Calendar.

Conclusión

Integrar Google Calendar con tu aplicación Django te permite crear potentes funciones de programación directamente dentro de tu aplicación. Al seguir esta guía, configuró la autenticación OAuth2, se conectó a la API de Google Calendar y obtuvo eventos del calendario. Ahora puedes ampliar esta integración para incluir creación de eventos, actualizaciones y otras funciones de administración de calendario según sea necesario.

PD: recuerde manejar las credenciales de forma segura y garantizar el manejo adecuado de errores para una aplicación sólida.

Declaración de liberación Este artículo se reproduce en: https://dev.to/karanjot_s/connect-google-calendar-to-django-application-3787?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3