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

调用Google Photos API时,Googleapis生成的Access Token返回UNAUTHENTICATED错误

排查Google Photos API 401 UNAUTHENTICATED错误

核心问题出在你获取access token的请求格式上,Google的OAuth2 token端点不接受JSON格式的请求体,必须用application/x-www-form-urlencoded类型的表单数据。

具体问题分析

你当前代码里设置了Content-Type: text/plain,并且用JSON.stringify把参数转成JSON字符串发送,这不符合Google token端点的要求。Postman里默认会把参数转成表单格式发送,所以能拿到有效token;而你代码生成的token因为请求格式错误,实际是无效的,自然调用Photos API会失败。

修正后的获取access token代码

把请求的Content-Type改成application/x-www-form-urlencoded,并将请求体转为表单格式:

fetch("https://www.googleapis.com/oauth2/v4/token", {
  method: "POST",
  headers: {
    "Content-Type": "application/x-www-form-urlencoded",
  },
  body: new URLSearchParams({
    grant_type: "refresh_token",
    client_id: "<client_id>",
    client_secret: "<client_secret>",
    refresh_token: "<refresh_token>",
  }),
})

额外排查点

  • 确认返回的access token包含正确的权限范围:调用token端点后,检查返回结果里的scope字段,必须包含Google Photos API需要的权限(比如https://www.googleapis.com/auth/photoslibrary或https://www.googleapis.com/auth/photoslibrary.readonly)。
  • 确保refresh token是用当前代码里的client_id和client_secret对应的应用生成的,OAuth Playground里要选择自己的应用,而不是默认的Google OAuth2 Playground应用。
  • 检查代码里是否正确提取了access token:确保你从token请求的返回结果中取到的是access_token字段,而不是其他字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 09:00:29