>백엔드 개발 >파이썬 튜토리얼 >Google 캘린더를 Django 애플리케이션에 연결

Google 캘린더를 Django 애플리케이션에 연결

WBOY
WBOY원래의
2024-08-16 18:01:43955검색

Connect Google Calendar to Django Application

향상된 일정 관리 및 이벤트 관리를 위해 Django 애플리케이션과 Google 캘린더를 원활하게 통합하기 위한 단계별 가이드

Google 캘린더를 Django 애플리케이션과 통합하면 일정 관리, 이벤트 관리 및 캘린더 동기화를 활성화하여 웹 앱의 기능을 크게 향상시킬 수 있습니다. 이 가이드는 Google API 자격 증명 설정부터 Django에 필요한 코드 구현까지 모든 것을 다루면서 Google Calendar를 Django 애플리케이션에 연결하는 단계를 안내합니다.

전제 조건

시작하기 전에 다음 사항을 확인하세요.

1. Django 애플리케이션: 작동하는 Django 애플리케이션

2. Google API 콘솔 계정: Google Cloud Console에 액세스합니다.

3. Google Calendar API 활성화됨: Google Cloud Console에서 프로젝트에 대해 Google Calendar API가 활성화되어야 합니다.


1단계: Google Cloud 프로젝트 설정

1. 프로젝트 만들기:
Google Cloud Console로 이동하여 새 프로젝트를 생성하세요.

2. Google 캘린더 API 활성화:
'API 및 서비스' > '라이브러리'를 선택하고 'Google 캘린더 API'를 검색하세요. 프로젝트에 이 기능을 활성화하세요.

3. 동의 화면 구성:

  • 'API 및 서비스'로 이동합니다 > “OAuth 동의 화면”을 선택하고 동의 화면을 구성하세요.
  • 이제 원하는 OAuth 유형을 선택하세요(이 경우 Google 계정이 있는 누구나 애플리케이션에 액세스할 수 있으므로 외부).
  • 앱 이름, 로고, 지원 이메일 등 동의 화면에 대한 모든 데이터를 필요에 따라 설정하세요.
  • '범위 추가 또는 제거'를 클릭하고 .../auth/userinfo.email , .../auth/userinfo.profile, openid 범위를 추가하여 사용자 정보에 액세스하고 모든 Google Calendar API 범위를 추가하여 Google 캘린더에 액세스합니다. 사용자의. 그런 다음 업데이트를 클릭하여 저장하세요.
  • 다음으로 테스트 사용자를 추가합니다. 우리 애플리케이션은 아직 Google에서 확인되지 않았으므로 이 목록에 있는 사용자만 이 Google 프로젝트에 등록할 수 있습니다. 따라서 Google 캘린더 통합을 테스트하는 데 사용할 모든 테스트 이메일을 추가하세요. 완료되면 계속해서 자격 증명을 만드세요.

4. OAuth 자격 증명 만들기:
"API 및 서비스" > "자격 증명"을 선택하고 자격 증명을 만듭니다. 자격 증명 유형으로 OAuth 클라이언트 ID를 선택합니다. 웹 애플리케이션을 애플리케이션 유형으로 설정하고 애플리케이션 세부정보를 입력하세요.

  • 승인된 리디렉션 URI: Django 애플리케이션에 대한 리디렉션 URL을 추가합니다(예: 로컬 개발의 경우 http://localhost:8000/oauth2callback).

5. JSON 자격 증명 다운로드:
OAuth 2.0 자격 증명 JSON 파일을 다운로드하여 안전하게 보관하세요. 이 파일에는 client_id, client_secret 및 기타 중요한 정보가 포함되어 있습니다.


2단계: 필수 Python 패키지 설치

Google API와 상호작용하려면 몇 가지 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단계: Google 캘린더 API 요청 처리

OAuth2 흐름이 완료되면 Google Calendar API에 인증된 요청을 보낼 수 있습니다. 다음은 사용자의 캘린더 이벤트를 나열하는 간단한 예입니다.

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 업데이트

urls.py에 뷰에 대한 URL을 추가하세요.

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 서버 시작:
    python prepare.py runserver를 사용하여 Django 개발 서버를 실행하세요.

  2. 인증:
    브라우저에서 /google-calendar/init/로 이동합니다. Google의 OAuth2 동의 페이지로 리디렉션됩니다.

  3. 액세스 이벤트:
    인증 후 /google-calendar/events/로 이동하여 Google 캘린더 이벤트를 확인하세요.

결론

Google Calendar를 Django 애플리케이션과 통합하면 앱 내에서 직접 강력한 일정 기능을 구축할 수 있습니다. 이 가이드에 따라 OAuth2 인증을 설정하고 Google 캘린더 API에 연결하고 캘린더 이벤트를 가져왔습니다. 이제 필요에 따라 이벤트 생성, 업데이트 및 기타 캘린더 관리 기능을 포함하도록 이 통합을 확장할 수 있습니다.

PS: 강력한 애플리케이션을 위해서는 자격 증명을 안전하게 처리하고 적절한 오류 처리를 보장해야 합니다.

위 내용은 Google 캘린더를 Django 애플리케이션에 연결의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.