Rumah >pembangunan bahagian belakang >Tutorial Python >Sambungkan Kalendar Google ke Aplikasi Django

Sambungkan Kalendar Google ke Aplikasi Django

WBOY
WBOYasal
2024-08-16 18:01:43952semak imbas

Connect Google Calendar to Django Application

Panduan Langkah demi Langkah untuk Mengintegrasikan Kalendar Google dengan Lancar dengan Aplikasi Django Anda untuk Penjadualan dan Pengurusan Acara yang Dipertingkat.

Menyepadukan Kalendar Google dengan aplikasi Django anda boleh meningkatkan kefungsian apl web anda dengan ketara dengan mendayakan penjadualan, pengurusan acara dan penyegerakan kalendar. Panduan ini akan membimbing anda melalui langkah-langkah untuk menyambungkan Kalendar Google ke aplikasi Django anda, merangkumi segala-galanya daripada menyediakan bukti kelayakan API Google kepada melaksanakan kod yang diperlukan dalam Django.

Prasyarat

Sebelum anda bermula, pastikan anda mempunyai perkara berikut:

1. Aplikasi Django: Aplikasi Django yang berfungsi.

2. Akaun Google API Console: Akses kepada Google Cloud Console.

3. API Kalendar Google Didayakan: API Kalendar Google harus didayakan untuk projek anda dalam Konsol Awan Google.


Langkah 1: Sediakan Projek Awan Google

1. Buat Projek:
Pergi ke Google Cloud Console dan buat projek baharu.

2. Dayakan API Kalendar Google:
Navigasi ke "API & Perkhidmatan" > "Perpustakaan" dan cari "API Kalendar Google." Dayakannya untuk projek anda.

3. Konfigurasikan Skrin Persetujuan:

  • Navigasi ke “API & Perkhidmatan” > “Skrin persetujuan OAuth” dan konfigurasikan skrin Persetujuan.
  • Sekarang pilih jenis OAuth yang anda mahukan (Luaran dalam kes ini kerana aplikasi itu boleh diakses oleh sesiapa sahaja yang mempunyai Akaun Google).
  • Tetapkan semua data untuk skrin persetujuan seperti Nama Apl, logo, e-mel sokongan dan lain-lain seperti yang diperlukan.
  • Klik pada “Tambah atau alih keluar skop” dan tambahkan skop berikut, …/auth/userinfo.email , …/auth/userinfo.profile, openid untuk mengakses maklumat pengguna dan semua skop API Kalendar Google untuk mengakses kalendar Google daripada pengguna. Kemudian klik Kemas Kini untuk menyimpan.
  • Seterusnya Tambah pengguna ujian. Memandangkan permohonan kami belum lagi disahkan oleh google maka hanya pengguna dalam senarai ini yang boleh mendaftar ke projek google ini. Jadi tambahkan semua e-mel ujian yang anda akan gunakan untuk menguji integrasi kalendar google. Setelah selesai, teruskan buat bukti kelayakan.

4. Cipta Bukti Kelayakan OAuth:
Pergi ke “API & Perkhidmatan” > "Tauliah" dan buat bukti kelayakan. Pilih ID klien OAuth sebagai jenis bukti kelayakan. Tetapkan aplikasi Web sebagai jenis Aplikasi dan isi butiran aplikasi.

  • URI ubah hala yang dibenarkan: Tambahkan URL ubah hala untuk aplikasi Django anda (cth., http://localhost:8000/oauth2callback untuk pembangunan setempat).

5. Muat Turun Bukti Kelayakan JSON:
Muat turun fail JSON bukti kelayakan OAuth 2.0 dan pastikan ia selamat. Fail ini mengandungi client_id anda, client_secret dan maklumat penting lain.


Langkah 2: Pasang Pakej Python yang Diperlukan

Anda memerlukan beberapa pakej Python untuk berinteraksi dengan API Google:

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

Langkah 3: Konfigurasikan Tetapan Django

Kemas kini settings.py anda dengan yang berikut:

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

Langkah 4: Buat Aliran OAuth2

Buat paparan untuk mengendalikan aliran 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}

Langkah 5: Kendalikan Permintaan API Kalendar Google

Setelah aliran OAuth2 selesai, anda boleh membuat permintaan yang disahkan kepada API Kalendar Google. Berikut ialah contoh mudah untuk menyenaraikan acara kalendar pengguna:

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)

Langkah 6: Kemas kini URL

Tambahkan URL untuk paparan dalam urls.py anda:

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'),
]

Langkah 7: Jalankan dan Uji

  1. Mulakan Pelayan Django Anda:
    Jalankan pelayan pembangunan Django anda menggunakan python manage.py runserver.

  2. Sahkan:
    Navigasi ke /google-calendar/init/ dalam penyemak imbas anda. Anda akan diubah hala ke halaman persetujuan OAuth2 Google.

  3. Akses Acara:
    Selepas pengesahan, pergi ke /google-calendar/events/ untuk melihat acara Kalendar Google anda.

Kesimpulan

Mengintegrasikan Kalendar Google dengan aplikasi Django anda membolehkan anda membina ciri penjadualan yang berkuasa terus dalam apl anda. Dengan mengikuti panduan ini, anda telah menyediakan pengesahan OAuth2, disambungkan ke API Kalendar Google dan mengambil acara kalendar. Anda kini boleh mengembangkan penyepaduan ini untuk memasukkan penciptaan acara, kemas kini dan ciri pengurusan kalendar lain seperti yang diperlukan.

PS: Ingat untuk mengendalikan bukti kelayakan dengan selamat dan pastikan pengendalian ralat yang betul untuk aplikasi yang mantap.

Atas ialah kandungan terperinci Sambungkan Kalendar Google ke Aplikasi Django. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn