Python 3.9下Google Drive上传脚本如何规避Chrome认证跳转?
解决pydrive上传Google Drive时的浏览器认证跳转问题
要跳过Chrome的交互式认证,用Google服务账号实现无后台认证是最直接的方案,具体操作分三步:
1. 创建并配置服务账号
- 登录Google Cloud控制台,新建项目或使用现有项目
- 搜索并启用「Google Drive API」
- 进入「IAM与管理」→「服务账号」,创建新服务账号(名称、ID按需填写)
- 给服务账号添加「Editor」权限(或更精细的Drive操作权限)
- 进入服务账号的「密钥」标签,点击「添加密钥」→「创建新密钥」,选择JSON格式并下载保存到本地(比如命名为
service_account_key.json)
2. 修改pydrive认证逻辑
替换原有代码的认证部分,用服务账号密钥完成无交互认证:
from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive from oauth2client.service_account import ServiceAccountCredentials # 配置认证范围与密钥文件路径 scope = ['https://www.googleapis.com/auth/drive'] gauth = GoogleAuth() gauth.credentials = ServiceAccountCredentials.from_json_keyfile_name('service_account_key.json', scope) drive = GoogleDrive(gauth) upload_file_list = ['myfile.pdf'] for upload_file in upload_file_list: # 确保目标文件夹已共享给服务账号邮箱 gfile = drive.CreateFile({'parents': [{'id': '1B8ttlQMRUkjbrscevfa1DablIayzObh2'}]}) gfile.SetContentFile(upload_file) gfile.Upload() print(f"{upload_file} 上传完成")
3. 给服务账号授权访问目标文件夹
- 打开Google Drive找到目标文件夹(对应代码中的ID)
- 右键文件夹→「共享」,输入服务账号邮箱(从下载的JSON密钥文件的
client_email字段获取) - 给服务账号分配「编辑」权限,保存设置
完成以上操作后,运行脚本就不会再弹出Chrome浏览器,全程后台完成认证与文件上传。
内容的提问来源于stack exchange,提问作者Saqib
相关产品推荐
相关产品推荐

