"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Conecte o Google Agenda ao aplicativo Django

Conecte o Google Agenda ao aplicativo Django

Publicado em 2024-11-07
Navegar:810

Connect Google Calendar to Django Application

Um guia passo a passo para integrar perfeitamente o Google Agenda ao seu aplicativo Django para agendamento aprimorado e gerenciamento de eventos.

Integrar o Google Calendar com seu aplicativo Django pode melhorar significativamente a funcionalidade do seu aplicativo web, permitindo agendamento, gerenciamento de eventos e sincronização de calendário. Este guia orientará você nas etapas para conectar o Google Agenda ao seu aplicativo Django, cobrindo tudo, desde a configuração das credenciais da API do Google até a implementação do código necessário no Django.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

1. Aplicativo Django: Um aplicativo Django funcional.

2. Conta do Console de APIs do Google: acesso ao Console do Google Cloud.

3. API do Google Agenda ativada: A API do Google Agenda deve estar ativada para seu projeto no Console do Google Cloud.


Etapa 1: configurar o projeto Google Cloud

1. Crie um projeto:
Acesse o Console do Google Cloud e crie um novo projeto.

2. Ativar API do Google Agenda:
Navegue até “API e serviços”> “Biblioteca” e pesquise “API do Google Agenda”. Habilite-o para o seu projeto.

3. Configurar tela de consentimento:

  • Navegue até “API e serviços” > “Tela de consentimento do OAuth” e configure a tela de consentimento.
  • Agora selecione o tipo de OAuth desejado (externo neste caso, pois o aplicativo seria acessível a qualquer pessoa que tenha uma Conta do Google).
  • Defina todos os dados da tela de consentimento, como nome do aplicativo, logotipo, e-mail de suporte etc., conforme necessário.
  • Clique em “Adicionar ou remover escopos” e adicione os seguintes escopos,…/auth/userinfo.email ,…/auth/userinfo.profile, openid para acessar as informações do usuário e todos os escopos da API do Google Agenda para acessar o calendário do Google de usuário. Em seguida, clique em Atualizar para salvar.
  • Próximo Adicione usuários de teste. Como nosso aplicativo ainda não foi verificado pelo Google, apenas os usuários desta lista poderão se registrar neste projeto do Google. Portanto, adicione todos os e-mails de teste que você usaria para testar a integração do Google Agenda. Uma vez feito isso, continue a criar credenciais.

4. Criar credenciais OAuth:
Vá para “API e Serviços” > “Credenciais” e crie credenciais. Selecione ID do cliente OAuth como o tipo de credenciais. Defina o aplicativo Web como o tipo de aplicativo e preencha os detalhes do aplicativo.

  • URIs de redirecionamento autorizados: adicione a URL de redirecionamento para seu aplicativo Django (por exemplo, http://localhost:8000/oauth2callback para desenvolvimento local).

5. Baixar credenciais JSON:
Baixe o arquivo JSON de credenciais do OAuth 2.0 e mantenha-o seguro. Este arquivo contém seu client_id, client_secret e outras informações importantes.


Etapa 2: instalar os pacotes Python necessários

Você precisará de alguns pacotes Python para interagir com as APIs do Google:

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

Etapa 3: definir as configurações do Django

Atualize seu settings.py com o seguinte:

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

Etapa 4: criar fluxo OAuth2

Crie uma visualização para lidar com o fluxo 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}

Etapa 5: lidar com solicitações da API do Google Agenda

Depois que o fluxo OAuth2 for concluído, você poderá fazer solicitações autenticadas para a API do Google Agenda. Aqui está um exemplo simples para listar os eventos da agenda do usuário:

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)

Etapa 6: atualizar URLs

Adicione os URLs das visualizações em seu 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'),
]

Etapa 7: executar e testar

  1. Inicie seu servidor Django:
    Execute seu servidor de desenvolvimento Django usando python manage.py runserver.

  2. Autenticar:
    Navegue para /google-calendar/init/ no seu navegador. Você será redirecionado para a página de consentimento do OAuth2 do Google.

  3. Acessar eventos:
    Após a autenticação, acesse /google-calendar/events/ para visualizar seus eventos do Google Agenda.

Conclusão

Integrar o Google Agenda com seu aplicativo Django permite que você crie recursos de agendamento poderosos diretamente em seu aplicativo. Seguindo este guia, você configurou a autenticação OAuth2, conectou-se à API do Google Agenda e obteve eventos da agenda. Agora você pode expandir essa integração para incluir criação de eventos, atualizações e outros recursos de gerenciamento de calendário conforme necessário.

PS: Lembre-se de lidar com as credenciais com segurança e garantir o tratamento adequado de erros para um aplicativo robusto.

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/karanjot_s/connect-google-calendar-to-django-application-3787?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3