如何使用Google Picker v3的`id`从谷歌照片下载原始图像

如何使用Google Picker v3的`id`从谷歌照片下载原始图像

问题描述:

我想从我的个人Google照片帐户下载完整图像。如何使用Google Picker v3的`id`从谷歌照片下载原始图像

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

下面是来自谷歌选取器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" 
} 

以下是请求使用的OAuth2

"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/" 

这里的access_token当我宣布scopes是我发送到请求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驱动器是两种不同的产品。但是,因为你可以通过谷歌驱动器访问来自谷歌的照片图像,并且还选择器的文档中,它明确gives an example使用谷歌驱动器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." 
} 
} 
+0

你是否已经尝试从[选取器API开发人员指南]搜索的JavaScript代码(https://developers.google.com/picker/docs/#top_of_page)? '本文档适用于希望将Google Picker API添加到其页面的开发人员。基本的JavaScript流畅度是必需的。“示例代码是在一些常见的场景中给出的,您可以试试看。 –

的问题得到解决,但并非没有挫折感和为什么没有记录在任何地方的刺痛感。

为了得到原始图像,我需要URL来破解任何返回的缩略图网址。例如,下面给出

注意的/s72在URL中。用/s0代替它,我们就可以得到未经处理的图像。想要图像为1024像素宽?通过/s1024。这里是这样做的

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