Использование google api в django

Я пытаюсь связать события в проекте py с календарем google. мое приложение не использует логин google, так как оно предназначено только для небольшой группы людей. Я уже несколько часов ищу, как это сделать, но ничего не получается. Любая помощь будет оценена по достоинству.

models.py

class AgendaClient(models.Model): # used to store info(same as enviroment variables)
    name = models.CharField(max_length=30, null=True, blank=True, unique=True)
    json = models.TextField(blank=True, null=True)

class Event(models.Model):
    summary = models.CharField(max_length=50, choices=EVENT_CHOICES)
    description = models.CharField(max_length=50, null=True, blank=True)
    start_date = models.DateField()
    google_link = models.CharField(max_length=150, null=True, blank=True)

signals.py

В идеале, я бы использовал сервисную учетную запись, чтобы пользователям не нужно было входить в google. Возможно, кто-то знает лучшее решение, чем это, но по сути сайт должен иметь возможность добавлять события в календарь, за которым могут следить пользователи, но не добавлять события в календарь каждого пользователя

Основной причиной вашей проблемы является то, что вы пытаетесь смешать авторизацию учетной записи службы и авторизацию установленного приложения в одном коде.

Что касается части вашего кода, касающейся учетных записей служб, помните, что для учетных записей служб в календаре Google используется учетная запись рабочего пространства Google. Убедитесь, что вы правильно настроили делегирование пользователю на вашем домене, в качестве которого вы хотите делегировать учетную запись службы.

from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/sqlservice.admin']
SERVICE_ACCOUNT_FILE = '/path/to/service.json'

credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
delegated_credentials = credentials.with_subject('user@example.org')

После поиска везде, где только можно, я нашел ответ. Я разместил его в разделе Google Calendar Integration with Django, потому что именно там я получил большую часть необходимой информации

Спасибо за помощь

Вернуться на верх