You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Flutter Android应用调用Google Photos API遇权限不足403错误的解决方法

解决Flutter调用Google Photos Library API的403权限不足问题

以下是针对你遇到的权限不足错误的具体排查和解决步骤:

  • 精确核对登录请求的Scope
    确保代码中GoogleSignIn实例初始化时,传入的scopes参数完全匹配https://www.googleapis.com/auth/photoslibrary.readonly,不能有拼写错误、多空格或路径偏差。示例代码如下:

    final GoogleSignIn googleSignIn = GoogleSignIn(
      scopes: ['https://www.googleapis.com/auth/photoslibrary.readonly'],
    );
    

    另外,仅调用signOut和disconnect可能无法彻底清除本地OAuth缓存,建议直接卸载应用后重装,确保旧权限令牌被完全清除。

  • 验证访问令牌的实际权限范围
    拿到登录返回的access_token后,调用https://www.googleapis.com/oauth2/v3/tokeninfo?access_token=你的令牌,查看返回结果中的scope字段,确认是否包含photoslibrary.readonly。如果没有,说明登录流程中Scope没有正确传递,需要检查GoogleSignIn的初始化逻辑。

  • 复查Google Cloud Console配置

    1. 确认Android OAuth客户端的包名和SHA-1指纹与当前开发环境完全一致(注意区分debug和release版本的SHA-1,开发阶段务必用debug指纹);
    2. 检查OAuth同意屏幕的权限列表,确认已添加https://www.googleapis.com/auth/photoslibrary.readonly,且测试用户已正确配置。
  • 确认API调用的请求格式
    调用https://photoslibrary.googleapis.com/v1/mediaItems时,确保请求头的Authorization字段格式正确:Bearer 你的访问令牌,注意Bearer与令牌之间必须有空格,令牌本身不能包含多余的换行或空格。

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

火山引擎 最新活动