В настоящее время я разрабатываю веб-приложение Django, которое позволит пользователям входить в свою учетную запись Google и получать доступ к своим данным Google Calendar и Google Drive.
Мне уже удалось сделать это в другом проекте в контексте внешнего интерфейса с использованием библиотеки Angular под названием ng-gapi (GoogleAuthService), но я не могу найти эквивалент для Django! Все, что я смог сделать на данный момент, это реализовать простой вход в систему Google, но я не могу взаимодействовать с различными API Google.
Я попытался использовать модуль под названием django-allauth, но он только регистрирует пользователя через Google, но не предоставляет никакой полезной информации (например, токены авторизации и т. д.), необходимой для предоставления веб-приложению для связи с данными пользователя Google.
{% load socialaccount %}
{% providers_media_js %}
{% load static %}
<html>
<body>
{% if user.is_authenticated %}
<p>Welcome {{ user.username }}</p>
<a class="btn btn-warning" href="http://localhost:8000/accounts/logout/">Log out</a>
<a class="btn btn-secondary" href="http://localhost:8000/show/">My Gigs</a>
<p>You're logged in with {{ user.get_provider }} as {{ user }}.</p>
<img style="max-width: 80px; padding:10px; margin-bottom:10px" src="{{ user.socialaccount_set.all.0.get_avatar_url }}" />
<p>UID: {{ user.socialaccount_set.all.0.uid }}</p>
<p>Date Joined: {{ user.socialaccount_set.all.0.date_joined}}</p>
<p>Last Login: {{ user.socialaccount_set.all.0.last_login}}</p>
<p>{{ user.socialaccount_set.all.0.extra_data.name }}</p>
{% else %}
<a class="btn btn-primary" href="{% provider_login_url 'google' %}">Log in</a>
{% endif %}
</body>
</html>
Когда я пытаюсь войти в систему таким образом, я получаю страницу входа в Google, которая работает хорошо, но у меня нет второго окна, которое должно было бы относиться к пользователю, предоставляющему моему веб-приложению доступ к его Календарь Google и данные Google Диска (хотя я уже настроил их в своей консоли разработчика Google).
Я был бы очень признателен, если бы вы могли мне помочь, я знаю, что похоже, что на этот вопрос отвечали несколько раз, но я прочитал сотни сообщений на эту тему и не смог найти решение.