访问用户的Google驱动器

时间:2019-05-27 06:52:50

标签: python django google-api django-allauth google-api-python-client

我有一个django网站,用户使用Django allauth来使用其Google帐户登录并向其Google驱动器授予权限。登录后,django-allauth将为该用户保存一个令牌。这部分都正常工作。

我现在如何访问用户的Google驱动器(已授予权限)列出可用文件?大概这需要使用由于django-allauth而保存的令牌。

我已经安装了python google api client,但正在努力找出如何使用用户的令牌列出其Google驱动器的内容。

有一个烧瓶示例here,我试图通过django-allauth对其进行修改以便在django项目中使用。登录流程正常运行,但是django-allauth不能确保请求访问Google驱动器。我尝试根据this更新设置:

SOCIALACCOUNT_PROVIDERS = {
    "google": {
        "SCOPE": [
            "https://www.googleapis.com/auth/drive.metadata.readonly",
            "https://www.googleapis.com/auth/userinfo.profile",
        ],
        "AUTH_PARAMS": {"access_type": "offline"},
    }
}

2 个答案:

答案 0 :(得分:1)

对于现在阅读本文的任何人,当前版本的allauth确实支持API身份验证。

对于不在allauth的默认列表中的范围,您需要在SCOPE列表中提供完整的URL(例如https://www.googleapis.com/auth/drive),而不是仅提供范围名称(例如,电子邮件)。

答案 1 :(得分:0)

没有发布任何答案,所以我只是发布了我结束的操作。看来django-allauth不能同时用于常规Google身份验证和api身份验证。

因此,暂时来说,用户首先必须使用由django-allauth处理的Google帐户登录该网站。然后,一旦他们登录,他们可以选择授予对其Google驱动器的访问权限,然后为此启动新的身份验证流程(使用Google python api client