最初,我将Google Cloud应用程序设置为具有完整的Google云端硬盘范围(../auth/drive
),并测试了与我的个人帐户的连接(即授予了该应用程序许可)。我正在使用PyDrive
仅供参考。
我随后从我的个人帐户中删除了该应用程序(与驱动器断开连接],在OAuth同意屏幕设置中删除了整个范围,并仅将其替换为../auth/drive.file
范围。
为了安全起见,我删除了OAuth凭据并重新创建了它们(并将它们重新下载到我的计算机上。)>
[当出现OAuth屏幕时,我现在希望该范围反映出该应用程序只能访问自己创建的文件和文件夹。
OAuth同意屏幕仍然告诉我该应用将有权访问我的云端硬盘中的all
文件和文件夹。from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive ... gauth = GoogleAuth() gauth.LoadCredentialsFile("app_user_secrets.json") if gauth.credentials is None: gauth.GetFlow() gauth.flow.params.update({"access_type": "offline"}) gauth.flow.params.update({"approval_prompt": "force"}) gauth.LocalWebserverAuth() elif gauth.access_token_expired: gauth.Refresh() else: gauth.Authorize() gauth.SaveCredentialsFile("app_user_secrets.json") drive = GoogleDrive(gauth)
关于为什么会发生这种情况或如何解决它的任何想法?
背景技术我最初使用完整的Google云端硬盘范围(../auth/drive)设置了Google Cloud应用程序,并测试了与我的个人帐户的连接(即授予了该应用程序许可)。我正在使用...
结果PyDrive
默认情况下会设置自己的OAuth范围,除非您覆盖它们。默认值为https://www.googleapis.com/auth/drive
,如下所示:https://pythonhosted.org/PyDrive/oauth.html#automatic-and-custom-authentication-with-settings-yaml。
我通过编辑身份验证流程并在LocalWebserverAuth()
命令之前包括以下行来修复并覆盖此问题。