讲师中心 微信公众号
AI工具推荐 视频效率加速

Google Service Accounts

Polar Sponsor
爱发电 赞助
.NET 9.0

通过 Google 服务账户在代码中读取或写入用户的 Google 表格、文档、云盘或日历——无头、无需 OAuth 浏览器流程。适用于已获得服务账户凭证的情况。

Google服务账户 1:A服务账户是Google一个脚本账户:它有一个电子邮件,登录一个密钥文件,和. 访问任何已共享的 Doc / Sheet / Driv

功能概述

Google服务账户 1:A服务账户是Google一个脚本账户:它有一个电子邮件,登录一个密钥文件,和. 访问任何已共享的 Doc / Sheet / Driv是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Google 服务账号

服务账号是一种专为脚本使用的 Google 账号:它拥有一个邮箱地址,通过密钥文件进行身份验证,并可访问已明确共享给该邮箱地址的任意 Doc / Sheet / Drive 文件 / Calendar —— 共享方式与向同事共享完全一致。无需浏览器授权、无需人工点击“允许”、也无需刷新访问令牌。

1. 您是否已有密钥?

请检查当前工作目录下是否存在 credentials.json 文件,或是否存在名为 CREDS_JSON 的环境变量,其值为包含密钥信息的 JSON 字符串。该服务账号的邮箱地址即该 JSON 中的 client_email 字段(格式如:name@project.iam.gserviceaccount.com)。若您已具备该密钥,请直接跳至第 3 步。

2. 尚无密钥 —— 引导用户完成配置流程

请明确告知用户:此过程完全免费,且仅需一个基础 Google 账号即可完成。 使用个人 gmail.com 邮箱即可 —— 无需信用卡,也无需开通结算账号。创建项目、服务账号及密钥均不产生任何费用;Sheets / Docs / Drive / Calendar 等 API 在 generous 的每日配额内亦完全免费。该配置为一次性操作,耗时仅需几分钟。

若用户已安装 gcloud CLI 工具,请提供以下命令供其执行:

gcloud auth login
PROJECT="agent-bot-$(date +%s)"
gcloud projects create "$PROJECT"
gcloud config set project "$PROJECT"
gcloud services enable sheets.googleapis.com drive.googleapis.com 
  docs.googleapis.com calendar-json.googleapis.com
gcloud iam service-accounts create agent-bot --display-name="Agent Bot"
SA="agent-bot@${PROJECT}.iam.gserviceaccount.com"
gcloud iam service-accounts keys create credentials.json --iam-account="$SA"
echo "现在请将您的文件/日历共享给:$SA"

若用户未安装 CLI 工具,请引导其参考 README.md 中的控制台向导(标题为“Click through the console”)—— 全程约 20 次点击,同样完全免费。无论采用哪种方式,最终结果一致:获得一个 credentials.json 文件及其中的 client_email。

3. 唯一规则:必须共享目标文件

服务账号默认无任何访问权限。对于每一个您需要操作的文件,用户都必须手动打开该文件 → 点击共享 → 粘贴 client_email → 设置权限为编辑者(如仅需只读,则设为查看者)→ 发送。对于日历:进入其设置 → 选择与特定人员共享。

若遇到 SpreadsheetNotFound 或 403 PERMISSION_DENIED 错误,几乎可以确定并非代码缺陷 —— 而是目标文件尚未被共享。 请明确告知用户具体是哪个文件、以及应使用哪个 client_email,以便其一键修复。切勿盲目重试。

4. 使用密钥

可运行示例位于 quickstart.py(执行命令:python quickstart.py sheets|docs|calendar)。核心用法如下:

Sheets(通过友好的封装库 gspread —— 其默认作用域已包含 drive,因此可通过名称直接调用 open()):

import gspread
gc = gspread.service_account(filename="credentials.json")
sh = gc.open("My Spreadsheet")                 # 仅因该表格已共享给服务账号,故可成功打开
sh.sheet1.update(values=[["hello", "from a robot"]])
sh.sheet1.append_row(["logged", "by agent"])   # 代理最常用的操作

其他任意 API(Docs、Calendar、Drive 等)则通过 google-api-python-client 访问 —— 同一份凭据对象可驱动所有 API,仅需调整作用域(scopes)列表即可:

from google.oauth2 import service_account
from googleapiclient.discovery import build

creds = service_account.Credentials.from_service_account_file(
    "credentials.json", scopes=["https://www.googleapis.com/auth/documents"])
docs = build("docs", "v1", credentials=creds)

在容器或 CI 环境中,请改从环境变量加载密钥而非读取文件:

import os, json, gspread
gc = gspread.service_account_from_dict(json.loads(os.environ["CREDS_JSON"]))

5. 边界限制 —— 请勿绕过这些约束

  • 始终申请最小必要的作用域(scope);除非确需写入,否则务必添加 .readonly 后缀。编辑文档前,请先以只读方式读取它。
  • 服务账号无法访问用户的私有 Gmail、个人日历或整个 Drive —— 它仅能访问明确共享给它的内容。若需访问上述私有数据,则必须由用户本人完成 OAuth 浏览器授权流程;切勿尝试以服务账号替代此步骤。
  • Calendar:共享日历的 ID 即为其所有者的邮箱地址(calendarId="primary" 表示服务账号自身空置的日历),且服务账号无法为事件添加参会人 —— Google 将返回 forbiddenForServiceAccounts 错误。您可以自由创建、修改或删除事件,但切勿尝试发送邀请。
  • 服务账号的邮箱地址仅作为身份标识,而非真实邮箱 —— 发往该地址的邮件将被退回。它无法注册任何服务,也无法接收确认链接。
  • 请将 credentials.json 视为密码:持有该文件者即等同于该服务账号本身。切勿将其提交至代码仓库,也切勿粘贴至任何共享环境中。

详见 README.md 中的完整说明 —— 包括为何此方案优于自行搭建 OAuth 应用、免费额度详情、作用域参考表,以及常见问题排查指南。

目录

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
Playwright 测试失败怎么办
Playwright 测试失败怎么办

Playwright测试失败专题汇集超时、定位器匹配、浏览器提前关闭、依赖与插件配置、文件上传、SSL及Docker启动等故障文章,并介绍通过截图、报告和Trace定位错误。

0

2026.10.21

Playwright 页面操作指南
Playwright 页面操作指南

Playwright页面操作专题汇集元素定位、点击与输入、等待响应、多页面切换、Iframe、事件监听及文件处理的已审核文章,便于按操作场景查阅示例与常见问题。

0

2026.10.21

Playwright 入门教程
Playwright 入门教程

Playwright入门专题汇集测试框架安装、VS Code配置、录制脚本、编写首个用例、运行调试及查看报告的已审核文章,帮助初学者搭建端到端测试流程。

0

2026.10.21

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

0

2026.10.16

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

0

2026.10.16

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

0

2026.10.16

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

0

2026.10.16

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

0

2026.10.16

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Gemini Notebook官方手册
Gemini Notebook官方手册

共0课时 | 0人学习

Google Cloud开发者文档
Google Cloud开发者文档

共0课时 | 0人学习

Veo 3 官方文档
Veo 3 官方文档

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn