浏览器调用Google Photos REST API认证缺失及请求语法咨询
Google Photos API mediaItems:search 正确请求语法及认证说明
Google Photos的mediaItems:search接口属于需要用户授权的受限接口,你之前用key=clientID、access=clientID的方式完全不符合该接口的认证要求,这就是你收到"Request is missing required authentication credential"错误的原因。
核心认证要求
该接口必须使用**OAuth 2.0访问令牌(Access Token)**进行身份验证,且令牌需要通过HTTP请求头传递,不能直接用Client ID替代。
正确请求示例(POST方法)
- 请求URL:
https://photoslibrary.googleapis.com/v1/mediaItems:search - 请求头:
Content-Type: application/jsonAuthorization: Bearer YOUR_VALID_ACCESS_TOKEN
注意:将YOUR_VALID_ACCESS_TOKEN替换为你通过OAuth 2.0流程获取的有效访问令牌。
- 请求体(JSON格式):
至少需要包含pageSize参数,示例如下(可按需添加过滤条件):{ "pageSize": 10, "filters": { "dateFilter": { "ranges": [ { "startDate": { "year": 2023, "month": 1, "day": 1 }, "endDate": { "year": 2023, "month": 12, "day": 31 } } ] } } }
为什么之前的方式无效
key=CLIENT_ID:这种参数仅适用于无需用户授权的公开API(如部分Google Maps接口),但Google Photos的所有读写接口都要求用户授权,因此该方式不适用。access=CLIENT_ID:Client ID是用于发起OAuth 2.0授权流程、换取访问令牌的凭证,本身不能直接作为访问令牌使用。
快速获取测试用访问令牌
如果你只是想测试接口,可以通过Google API控制台的OAuth 2.0 Playground生成临时访问令牌:
- 选择Google Photos Library API的相关权限(如
photoslibrary.readonly) - 完成授权流程后,即可获取可用于测试的访问令牌
内容的提问来源于stack exchange,提问作者Patrick Walter
相关产品推荐
相关产品推荐

