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

如何在无头控制台应用中以编程方式访问Google Sheets?

开发无头VM上Google Sheets控制台应用的步骤

1. 优先选择服务账号方案(无人值守最优解)

  • 登录Google Cloud Console进入你的测试应用,在「IAM与管理」→「服务账号」页面创建新服务账号
  • 给该服务账号分配「Google Sheets API编辑器」权限(根据实际需求选择读写权限)
  • 生成并下载服务账号的JSON密钥文件,存到VM的安全目录下
  • 将需要操作的Google Sheets共享给服务账号的邮箱(服务账号详情页的「邮箱」字段),权限设为编辑/查看(匹配需求)

2. 代码实现示例(以Python为例)

  • 安装依赖库:pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
  • 编写认证与操作代码:
from google.oauth2 import service_account
from googleapiclient.discovery import build

# 配置参数
SCOPES = ['https://www.googleapis.com/auth/spreadsheets']
SERVICE_ACCOUNT_KEY_PATH = '/path/to/your/service-account-key.json'
TARGET_SPREADSHEET_ID = 'your-spreadsheet-id'

# 服务账号认证
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_KEY_PATH, scopes=SCOPES)

# 初始化Sheets服务
sheets_service = build('sheets', 'v4', credentials=credentials)

# 示例:读取指定范围数据
sheet = sheets_service.spreadsheets()
data_result = sheet.values().get(
    spreadsheetId=TARGET_SPREADSHEET_ID, range='Sheet1!A1:C3').execute()
data = data_result.get('values', [])
  • 部署代码到VM,用Linux的cron或类似工具设置定时任务,实现定期运行

3. 关于Google Authenticator验证码的说明

你提到的验证码认证方式对应OAuth 2.0设备授权流,确实适用于无头环境:

  • 在Google Cloud Console创建「桌面应用」类型的OAuth客户端ID(无需配置重定向URL)
  • 代码中实现设备授权流逻辑,运行时会输出一个验证URL和一串验证码
  • 用手机打开该URL,输入验证码并登录有权限的Google账号,完成认证后脚本会自动获取令牌并本地保存(后续运行可自动刷新)
  • 这种方式适合个人专属场景,但需要手动完成一次初始认证,令牌过期后需处理自动刷新逻辑

对比服务账号方案,设备授权流需要一次手动介入,而服务账号完全无需人工操作,更适合无人值守的定时任务场景。


内容的提问来源于stack exchange,提问作者Tomáš Zato

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 11:03:20