google-api - 如何从 Google Picker v3 中使用 `id` 从 Google Photo 下载原始图像

标签 google-api picasa google-picker google-photos

我正在尝试从我的个人 Google 照片帐户下载完整图片。

图像本身是用 iPhone 6+ 拍摄的,分辨率为 2448×3264,但到目前为止我能得到的最大尺寸是缩略图尺寸 384x512。

以下是从 Google Picker API v3 返回的数据:

> data.docs[0]
{ 
   id:"6249684261772136370", 
   mediaKey:"AF1QipPWLtKuyF09rcIQd4UT2tjb1YxkWSypm6PHXfeX",
   mimeType:"application/vnd.google-apps.photo",
   name:"IMG_5853.JPG",
   parentId:"6249684260517294833",
   serviceId: "picasa",
   thumbnails: (5) [{…}, {…}, {…}, {…}, {…}],
   type:"photo",
   url:"https://picasaweb.google.com/105232457300095210093/ALBUM_NAME#HASH"
}

这里是scopes我在使用OAuth2请求access_token时声明

"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile",
"https://www.googleapis.com/auth/photos",
"https://www.googleapis.com/auth/drive",
"https://picasaweb.google.com/data/"

这是我发送到“图像元数据”端点的请求,gdata 版本设置为 3: https://picasaweb.google.com/data/entry/api/user/default/albumid/6249684260517294833/photoid/6249684261772136370

并获取以下 XML https://pastebin.com/jgXEqftN<content type="image/jpeg" src="..." /> 下的图像仍然是缩略图。

我知道必须有一种方法可以实现这一点,因为像 filestack 这样的公司可以下载全尺寸图像。有什么意见/建议吗?


请注意,我知道 Google 照片和 Google 云端硬盘是两种不同的产品。但由于您可以通过 Google Drive 访问 Google 照片中的图像,并且在选取器的文档中也可以访问,因此它明确 gives an example关于使用 Google Drive v3 API,我想尝试一下这个示例:

curl --header "Authorization: Bearer ya29.GlsABSW1XLQRocTsxsFlGKmVnx3iCwjAxQCFWG-3YH9nM6IYdLyp8x9v4XLglUEMK1XKsgf8SjYzRpbHJa5xDat5M7PcOfJhViOZAa-S6aAGuWKPe98AJ_y2QtH7" https://www.googleapis.com/drive/v3/files/6244822006604119090\?alt\=media
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "File not found: 6244822006604119090.",
    "locationType": "parameter",
    "location": "fileId"
   }
  ],
  "code": 404,
  "message": "File not found: 6244822006604119090."
 }
}

最佳答案

问题解决了,但还是有一种挫败感和一种刺痛感,因为为什么这个问题没有在任何地方记录下来。

要获取原始图像,我需要对任何返回的缩略图 URL 进行 url hack。例如,给定以下内容

注意网址中的 /s72。通过将其替换为 /s0,我们将获得未裁剪的图像。想要图像宽 1024 像素吗?传入/s1024。这是执行此操作的 JavaScript 代码

thumbnail_url.replace(/\/s\S+?\//g, "/s0/")

关于google-api - 如何从 Google Picker v3 中使用 `id` 从 Google Photo 下载原始图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47230602/

相关文章:

google-drive-api - 对子文件的 Google Drive API 权限

java - 凭据无效(oAuth token 缺失或无效)

javascript - Google Picker API DocsUploadView setIncludeFolders 不起作用

android - 如何检查用户是否有订阅(Android 应用内计费)?

ios - 访问未配置 : Google URL Shorten API on iOS Simulator

google-api - Youtube API更高配额(表格): response time and price

php - zend gdata picasa php api 停止工作

java - 谷歌客户端登录认证

objective-c - 在 GData object-c 客户端 (Picasa) 中使用照片 ID 获取照片评论

google-api - 查询 Picasa 网络相册中的特定 PhotoID 以检查是否存在