У меня есть сайт django, который использует Джанго Аллаут для пользователей, чтобы войти в систему, используя свою учетную запись Google, и предоставить разрешение на свой диск Google. После входа в систему django-allauth
сохраняет токен для этого пользователя. В этой части все работает корректно.
Как мне теперь получить доступ к диску Google пользователя (который дал разрешение), чтобы просмотреть список доступных файлов? Предположительно, для этого нужно использовать токен, который был сохранен благодаря django-allauth
.
Я установил API-клиент Google для Python, но не могу понять, как использовать токен пользователя для отображения содержимого его диска Google.
Существует пример фляги здесь, который я пытаюсь изменить для использования в проекте django с использованием django-allauth
. Процесс входа работает правильно, но django-allauth
не гарантирует, что запрашивается доступ к диску Google. Я попытался обновить свои настройки в соответствии с это:
SOCIALACCOUNT_PROVIDERS = {
"google": {
"SCOPE": [
"https://www.googleapis.com/auth/drive.metadata.readonly",
"https://www.googleapis.com/auth/userinfo.profile",
],
"AUTH_PARAMS": {"access_type": "offline"},
}
}
Там не было опубликовано никаких ответов, поэтому я просто публикую то, что я закончил делать. Не похоже, что django-allauth
можно использовать как для обычной аутентификации Google, так и для аутентификации API.
Поэтому на данный момент пользователь должен сначала войти на сайт, используя свою учетную запись Google, которая обрабатывается django-allauth
. Затем, как только они вошли в систему, они могут выбрать предоставление доступа к своему диску Google, который затем запускает для этого новый поток аутентификации (используя API-клиент Google Python)
Для тех, кто читает это сейчас, текущая версия allauth поддерживает аутентификацию API.
Вам необходимо указать полный URL-адрес (например, https://www.googleapis.com/auth/drive), а не только имя области (например, адрес электронной почты) в списке SCOPE для областей, которых нет в списке по умолчанию в allauth.
У вас есть пример вызова API с использованием этого? Это было бы невероятно полезно - заранее спасибо!
Согласованный. Если у вас есть пример, это было бы очень полезно!
Привет, @darkpool, у тебя есть какие-нибудь рекомендации по тому, что ты придумал? Я чувствую, что документация Google как по аутентификации, так и по базовым функциям (совместное использование, предоставление разрешений и т. д.) с apiv3 довольно скудна в этом...