You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:27:31