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

使用Python调用Google API创建Google文档遇错误求助

解决服务账号凭据创建Google Docs时的类型不匹配错误

你的问题根源很清晰:Google Docs的官方quickstart示例用的是面向终端用户的OAuth 2.0授权流程(需要桌面/Web应用类型的凭据),但你使用的是服务账号凭据文件,这两种凭据类型不兼容,所以才会抛出ValueError: Client secrets must be for a web or installed app.错误。

而gspread库本身对服务账号认证做了专门适配,所以你能正常操作表格,但Docs的示例代码没有处理服务账号的情况。下面是修改方案,让你用现有的服务账号凭据创建Google Docs:

步骤1:修改认证逻辑,使用服务账号凭据

替换原示例中的OAuth flow代码,改用google.oauth2.service_account加载你的凭据文件,构建Docs服务客户端。

完整代码示例:

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

# Docs API的权限范围,创建文档需要这个权限
SCOPES = ['https://www.googleapis.com/auth/documents']
# 你的服务账号凭据文件路径
SERVICE_ACCOUNT_FILE = 'credentials.json'

def main():
    # 加载服务账号凭据
    credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)
    
    # 构建Google Docs服务客户端
    docs_service = build('docs', 'v1', credentials=credentials)
    
    # 创建新文档
    new_doc = docs_service.documents().create(body={
        'title': '自动化审核请求文档'  # 自定义文档标题
    }).execute()
    
    # 输出文档信息
    doc_id = new_doc['documentId']
    print(f"新文档创建成功!")
    print(f"文档ID:{doc_id}")
    print(f"在线编辑链接:https://docs.google.com/document/d/{doc_id}/edit")

if __name__ == '__main__':
    main()

步骤2:(可选)给其他用户添加文档访问权限

服务账号创建的文档默认只有服务账号自身能访问,如果需要让团队成员查看或编辑,你需要借助Google Drive API来设置权限(Docs的权限由Drive管理)。

添加权限的代码片段(可以插入到上面的main函数中,创建文档之后):

# 构建Drive服务客户端
drive_service = build('drive', 'v3', credentials=credentials)

# 定义权限:给指定邮箱添加编辑权限
permission_body = {
    'type': 'user',
    'role': 'writer',  # 可选:reader(只读)、writer(编辑)、owner(所有者)
    'emailAddress': 'your-team-member@example.com'
}

# 应用权限设置
drive_service.permissions().create(
    fileId=doc_id,
    body=permission_body,
    sendNotificationEmail=True  # 是否给用户发送权限通知邮件
).execute()

print(f"已给your-team-member@example.com添加编辑权限")

关键注意事项

  • 确保在Google Cloud控制台中启用了Google Docs API和Google Drive API(如果要设置权限的话);
  • 服务账号的凭据文件无需更换,你现有的credentials.json完全可用;
  • 如果需要批量创建文档或进行更复杂的编辑操作,可以基于Docs API的能力扩展功能。

内容的提问来源于stack exchange,提问作者Timur Nurlygayanov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 18:07:39