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

使用Python脚本部署Google Script应用时遭遇401未授权错误求助

解决Google Script部署API的401未授权问题

以下是针对你遇到的401认证错误的排查和解决步骤:

  • 检查访问令牌有效性
    你提供的凭证里expiry字段显示令牌在2024-04-03就过期了,过期令牌会直接导致未授权错误。如果你的凭证中没有refresh_token,说明当初授权时没申请离线访问权限,得重新走OAuth2授权流程,获取包含刷新令牌的有效凭证;如果有刷新令牌,可通过以下代码自动刷新:

    from google.auth.transport.requests import Request
    
    if not credentials.valid:
        credentials.refresh(Request())
    
  • 验证凭证初始化是否正确
    调用Credentials.from_authorized_user_info后,打印credentials.valid检查凭证是否有效。如果返回False,说明凭证数据有误,比如token、client_id等字段填写错误,需核对OAuth2授权生成的原始数据。

  • 确认作用域授权完整
    确保你在授权时实际请求了代码中列出的所有作用域。如果后续修改了作用域,旧令牌会失效,需要重新完成授权流程,让用户同意新的作用域权限。

  • 切换到服务账号(自动化场景首选)
    用用户令牌做自动化部署容易遇到过期问题,推荐使用服务账号:

    1. 在Google云控制台创建服务账号,下载JSON密钥文件
    2. 把服务账号邮箱添加到目标Google Script项目的共享列表,授予编辑权限
    3. 用服务账号凭证初始化客户端:
      from google.oauth2 import service_account
      from googleapiclient.discovery import build
      
      SCOPES = [
          "https://www.googleapis.com/auth/drive",
          "https://www.googleapis.com/auth/script.projects",
          "https://www.googleapis.com/auth/script.deployments"
      ]
      SERVICE_ACCOUNT_FILE = '/path/to/your-service-account-key.json'
      
      credentials = service_account.Credentials.from_service_account_file(
          SERVICE_ACCOUNT_FILE, scopes=SCOPES)
      script_service = build('script', 'v1', credentials=credentials)
      
  • 检查Google Apps Script API是否启用
    登录Google云控制台,确认你使用的项目已经启用了Google Apps Script API,未启用的API会拒绝任何请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:02:07