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

Chrome扩展调用Google Photos API遇权限不足错误求助

集成Google Photos API的Chrome扩展遇403权限不足问题

问题描述

开发Chrome扩展时集成Google Photos API,持续收到403 PERMISSION_DENIED错误,提示:Request had insufficient authentication scopes。

正常工作状态

  • 同一授权流程下,Google Calendar API(calendar.readonly scope)可正常调用
  • OAuth令牌已成功获取
  • manifest.json中已声明正确的scopes

已尝试操作

manifest.json的scopes配置:

"scopes": [
    "https://www.googleapis.com/auth/calendar.readonly",
    "https://www.googleapis.com/auth/photoslibrary.readonly",
    "https://www.googleapis.com/auth/photoslibrary"
  ]
  1. 已在Google Cloud Console启用Google Photos Library API
  2. OAuth consent screen中已添加测试用户(应用处于Testing模式)

测试的API端点

  • https://photoslibrary.googleapis.com/v1/mediaItems
  • https://photoslibrary.googleapis.com/v1/mediaItems:search

疑问与解决方案

1. 为何同一令牌可调用Calendar API却无法调用Photos API?

最可能的原因是旧授权缓存未更新:Chrome会缓存扩展的OAuth授权信息,若你是后来才添加Photos的scopes,之前生成的令牌不会自动包含新权限。

解决:

  • 进入chrome://settings/connectedApps,找到你的扩展并移除,重启扩展后重新完成授权流程。
  • 代码中显式指定scopes:调用chrome.identity.getAuthToken时,确保options.scopes数组包含Photos相关权限,不要仅依赖manifest声明。

2. 为何令牌已包含对应scopes仍提示权限不足?

先验证令牌实际包含的scopes:访问https://oauth2.googleapis.com/tokeninfo?id_token=你的令牌内容,查看返回的scope字段是否真的包含photoslibrary.readonly或photoslibrary。

如果确实包含,检查:

  • 测试用户是否正确添加:OAuth consent screen的测试用户列表必须包含当前登录的Google账号,应用处于Testing模式时仅测试用户可访问。
  • API启用状态:再次确认Google Cloud Console中Google Photos Library API的状态为“已启用”(有时可能误操作关闭)。

3. Chrome扩展能否成功使用Google Photos API?有隐藏要求吗?

可以成功集成,需注意几个关键点:

  • Manifest版本兼容:如果是Manifest V3,确保已声明"identity"权限,且使用chrome.identity.getAuthToken进行授权,不要使用Manifest V2的旧方法。
  • 配额限制:Photos API有请求配额(如mediaItems.list每日1000次),但配额不足的错误提示是Quota Exceeded,与当前权限不足的提示不同,可在Cloud Console的配额页面查看使用情况。
  • scope选择:仅使用必要的scope,比如只读场景只用photoslibrary.readonly即可,避免不必要的权限申请。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 20:35:10