使用Google Photo APIs时,如何从共享URL获取mediaItemId?
关于Google Photos API获取共享照片mediaItemId的解决方案
首先明确一点:你提供的这种https://photos.app.goo.gl/开头的短共享链接,本身并不直接包含mediaItemId——它本质是一个跳转链接,指向真正的共享相册页面。要获取里面的照片mediaItemId,得按以下步骤来:
步骤1:解析短链接,获取共享相册的访问令牌
先对这个短链接发送一个HEAD或GET请求,提取响应头里的Location字段,这会得到类似https://photos.google.com/share/xxxx?key=ABCDEFG12345的目标URL,其中的key参数就是这个共享相册的albumToken。
步骤2:通过API获取共享相册ID
调用Google Photos API的albums.search接口,把刚才拿到的albumToken作为参数传入,请求示例如下:
GET https://photoslibrary.googleapis.com/v1/albums:search?albumToken=ABCDEFG12345
返回的响应里会包含该共享相册的id(相册ID),这是后续获取媒体项的关键。
步骤3:获取相册内的mediaItemId列表
有了相册ID后,调用mediaItems.search接口,指定albumId参数为刚才获取的相册ID,请求示例:
POST https://photoslibrary.googleapis.com/v1/mediaItems:search Content-Type: application/json { "albumId": "你的相册ID", "pageSize": 100 }
这个接口会返回相册内所有媒体项的列表,每一项的id就是你需要的mediaItemId,同时还包含照片的下载链接等信息。
注意事项
- 确保你的API请求已经获得了正确的权限,比如
photoslibrary.readonly(只读访问)或photoslibrary.appcreateddata(如果是你自己创建的相册)。 - 该共享相册必须是公开可访问的,或者你的授权账号拥有访问权限,否则API会返回权限错误。
- 解析短链接时,避免直接加载页面内容,通过HTTP头获取跳转目标效率更高,也更稳定。
内容的提问来源于stack exchange,提问作者Tu Le
相关产品推荐
相关产品推荐

