«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Подключите Календарь Google к приложению Django

Подключите Календарь Google к приложению Django

Опубликовано 7 ноября 2024 г.
Просматривать:185

Connect Google Calendar to Django Application

Пошаговое руководство по плавной интеграции Календаря Google с вашим приложением Django для расширенного планирования и управления событиями.

Интеграция Календаря Google с вашим приложением Django может значительно улучшить функциональность вашего веб-приложения за счет включения планирования, управления событиями и синхронизации календаря. Это руководство проведет вас через шаги по подключению Календаря Google к вашему приложению Django, охватывая все: от настройки учетных данных Google API до реализации необходимого кода в Django.

Предварительные условия

Прежде чем начать, убедитесь, что у вас есть следующее:

1. Приложение Django: Рабочее приложение Django.

2. Учетная запись консоли Google API: Доступ к Google Cloud Console.

3. API Календаря Google включен: API Календаря Google должен быть включен для вашего проекта в Google Cloud Console.


Шаг 1. Настройте проект Google Cloud

1. Создать проект:
Перейдите в Google Cloud Console и создайте новый проект.

2. Включить API Календаря Google:
Перейдите в «API и службы» > «Библиотека» и найдите «API Календаря Google». Включите его для своего проекта.

3. Настроить экран согласия:

  • Перейдите в раздел «API и службы» > «Экран согласия OAuth» и настройте экран согласия.
  • Теперь выберите нужный тип OAuth (в данном случае внешний, поскольку приложение будет доступно любому, у кого есть учетная запись Google).
  • Укажите все данные для экрана согласия, такие как имя приложения, логотип, адрес электронной почты поддержки и т. д. по мере необходимости.
  • Нажмите «Добавить или удалить области» и добавьте следующие области: …/auth/userinfo.email, …/auth/userinfo.profile, openid для доступа к информации о пользователе и все области API Календаря Google для доступа к календарю Google. пользователя. Затем нажмите «Обновить», чтобы сохранить.
  • Далее Добавьте тестовых пользователей. Поскольку наше приложение еще не проверено Google, только пользователи из этого списка смогут зарегистрироваться в этом проекте Google. Поэтому добавьте все тестовые электронные письма, которые вы будете использовать для проверки интеграции календаря Google. После этого продолжайте создавать учетные данные.

4. Создайте учетные данные OAuth:
Перейдите в «API и службы» > «Учетные данные» и создайте учетные данные. Выберите идентификатор клиента OAuth в качестве типа учетных данных. Установите веб-приложение в качестве типа приложения и заполните сведения о приложении.

  • Авторизованные URI перенаправления: добавьте URL-адрес перенаправления для вашего приложения Django (например, http://localhost:8000/oauth2callback для локальной разработки).

5. Загрузите учетные данные JSON:
Загрузите JSON-файл учетных данных OAuth 2.0 и сохраните его. Этот файл содержит ваш client_id, client_secret и другую важную информацию.


Шаг 2. Установите необходимые пакеты Python

Для взаимодействия с API Google вам понадобится несколько пакетов Python:

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

Шаг 3. Настройте параметры Django

Обновите файл settings.py, указав следующее:

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

Шаг 4. Создайте поток OAuth2.

Создайте представление для обработки потока 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}

Шаг 5. Обработка запросов API Календаря Google

После завершения потока OAuth2 вы сможете отправлять аутентифицированные запросы к API Календаря Google. Вот простой пример вывода списка событий календаря пользователя:

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)

Шаг 6. Обновите URL-адреса

Добавьте URL-адреса представлений в свой 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'),
]

Шаг 7: Запустите и протестируйте

  1. Запустите сервер Django:
    Запустите сервер разработки Django с помощью python Manage.py runserver.

  2. Аутентификация:
    Перейдите в /google-calendar/init/ в своем браузере. Вы будете перенаправлены на страницу согласия Google OAuth2.

  3. События доступа:
    После аутентификации перейдите в /google-calendar/events/, чтобы просмотреть события Календаря Google.

Заключение

Интеграция Календаря Google с вашим приложением Django позволяет вам создавать мощные функции планирования непосредственно в вашем приложении. Следуя этому руководству, вы настроили аутентификацию OAuth2, подключились к API Календаря Google и получили события календаря. Теперь вы можете расширить эту интеграцию, включив в нее создание мероприятий, обновление и другие функции управления календарем по мере необходимости.

PS: Не забудьте безопасно обращаться с учетными данными и обеспечить правильную обработку ошибок для надежного приложения.

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/karanjot_s/connect-google-calendar-to-django-application-3787?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3