「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Google カレンダーを Django アプリケーションに接続する

Google カレンダーを Django アプリケーションに接続する

2024 年 11 月 7 日に公開
ブラウズ:545

Connect Google Calendar to Django Application

Google カレンダーを Django アプリケーションとシームレスに統合して、スケジュール設定とイベント管理を強化するためのステップバイステップ ガイド。

Google カレンダーを Django アプリケーションと統合すると、スケジュール、イベント管理、カレンダーの同期が可能になり、Web アプリの機能が大幅に強化されます。このガイドでは、Google カレンダーを Django アプリケーションに接続する手順を説明し、Google API 認証情報の設定から Django での必要なコードの実装までをすべてカバーします。

前提条件

開始する前に、次のものが揃っていることを確認してください:

1. Django アプリケーション: 動作する Django アプリケーション。

2. Google API コンソール アカウント: Google Cloud コンソールへのアクセス。

3. Google Calendar API の有効化: Google Cloud Console でプロジェクトに対して Google Calendar API を有効にする必要があります。


ステップ 1: Google Cloud プロジェクトを設定する

1.プロジェクトの作成:
Google Cloud Console に移動し、新しいプロジェクトを作成します。

2. Google カレンダー API を有効にする:
「API とサービス」 > 「ライブラリ」に移動し、「Google Calendar API」を検索します。プロジェクトで有効にしてください。

3.同意画面の設定:

  • [API とサービス] > [OAuth 同意画面] に移動し、同意画面を構成します。
  • 次に、必要な OAuth のタイプを選択します (この場合、アプリケーションは Google アカウントを持つすべてのユーザーがアクセスできるため、外部です)。
  • 必要に応じて、アプリ名、ロゴ、サポートメールアドレスなど、同意画面のすべてのデータを設定します。
  • [スコープの追加または削除] をクリックし、次のスコープを追加します。…/auth/userinfo.email 、…/auth/userinfo.profile、ユーザー情報にアクセスするための openid、および Google カレンダーにアクセスするためのすべての Google Calendar API スコープユーザーの。次に、「更新」をクリックして保存します。
  • 次へ テスト ユーザーを追加します。私たちのアプリケーションはまだ Google によって検証されていないため、このリスト内のユーザーのみがこの Google プロジェクトに登録できます。したがって、Google カレンダーの統合をテストするために使用するすべてのテストメールを追加します。 完了したら、認証情報の作成を続けます。

4. OAuth 認証情報の作成:
「API とサービス」 > 「認証情報」に移動し、認証情報を作成します。資格情報のタイプとして OAuth クライアント ID を選択します。アプリケーションの種類として Web アプリケーションを設定し、アプリケーションの詳細を入力します。

  • 承認されたリダイレクト 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 Calendar 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 を更新する

ビューの 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 サーバーを起動します:
    python manage.py runserver.

  2. を使用して Django 開発サーバーを実行します。
  3. 認証:
    ブラウザで /google-calendar/init/ に移動します。 Google の OAuth2 同意ページにリダイレクトされます。

  4. イベントにアクセス:
    認証後、/google-calendar/events/ に移動して Google カレンダーのイベントを表示します。

結論

Google カレンダーを Django アプリケーションと統合すると、強力なスケジュール機能をアプリ内に直接構築できます。このガイドに従うことで、OAuth2 認証を設定し、Google Calendar API に接続し、カレンダー イベントを取得しました。この統合を拡張して、必要に応じてイベントの作成、更新、その他のカレンダー管理機能を含めることができるようになりました。

PS: 認証情報を安全に処理し、堅牢なアプリケーションのために適切なエラー処理を行うことを忘れないでください。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/karanjot_s/connect-google-calendar-to-django-application-3787?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3