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

如何通过API从Python调用Google Apps Script函数?缺少credentials.json如何解决

解决方案

1. 凭证文件问题修复

  • 你之前创建OAuth 2.0客户端ID时选了网页应用类型,才会要求配置redirect uri。本地调试阶段直接创建桌面应用类型的OAuth 2.0客户端ID即可,无需额外配置redirect uri。
  • 下载创建完成的凭证JSON文件,重命名为app_script_creds.json,放到Flask项目根目录(和你写的CreateGCalEvent类所在py文件同目录)即可解决找不到该文件的报错。
  • token.json是首次完成OAuth授权后自动生成的文件,无需手动创建,首次运行脚本时会弹出浏览器引导你完成账号授权,授权成功后会自动在同目录生成该文件。

2. 权限范围适配

你当前配置的SCOPES未覆盖创建Calendar事件所需权限,需要修改SCOPES配置:

SCOPES = [
    'https://www.googleapis.com/auth/script.scriptapp',
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/calendar', # 新增Calendar操作权限
    'https://www.googleapis.com/auth/spreadsheets' # 若要操作Google Sheet需新增该权限
]

同时要确保你的Apps Script项目的appsscript.json配置文件中,oauthScopes字段和上述权限列表保持一致,避免跨端权限不匹配报错。

3. Apps Script部署配置检查

  • 部署可执行API时,执行身份选择你授权用的Google账号对应的身份,比如个人使用选“我自己”
  • 访问权限配置为和授权账号匹配的范围,个人使用选“仅限我自己”即可

4. 调用逻辑修正

你当前代码中调用的Apps Script函数是示例的getFoldersUnderRoot,需要替换为你自己实现的创建Calendar事件的函数名,若函数需要传参,可在request中添加parameters字段:

request = {
    "function": "你写的创建日历事件的函数名",
    "parameters": [参数1, 参数2] # 按函数要求传入对应参数
}

5. 线上部署redirect uri配置(可选)

如果后续要把服务部署到线上,需要创建网页应用类型的OAuth 2.0客户端ID,此时redirect uri填写你的Flask服务的授权回调地址即可,比如线上地址填https://你的业务域名/oauth2callback,本地测试可追加http://localhost:5000/oauth2callback。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 11:57:05