如何从 Google 带有来自 Google Picker v3 的 `id` 的照片下载原始图像
How to download the original image from Google Photo with an `id` from Google Picker v3
我正在尝试从我的个人 Google 照片帐户下载完整图像。
图像本身是用 iPhone 6+ 以 2448×3264 的分辨率拍摄的,但到目前为止我能得到的最大尺寸是 384x512 的缩略图尺寸。
这是从 Google 选择器 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
请求 access_token 时声明的 scopes
"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/"
这是我发送到 "image metadata" 端点的请求,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 这样的公司可以下载全尺寸图像。任何 comments/suggestions?
请注意,我知道 Google 照片和 Google 驱动器是两种不同的产品。但是由于您可以通过 Google 驱动器访问 Google 照片中的图像,而且在 Picker 的文档中,它明确地 gives an example 使用 Google 驱动器 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。例如,给定以下
注意 url 中的 /s72
。通过将其替换为 /s0
,我们将获得未裁剪的图像。想要图像宽度为 1024 像素?传入 /s1024
。这是执行此操作的 javascript 代码
thumbnail_url.replace(/\/s\S+?\//g, "/s0/")
我正在尝试从我的个人 Google 照片帐户下载完整图像。
图像本身是用 iPhone 6+ 以 2448×3264 的分辨率拍摄的,但到目前为止我能得到的最大尺寸是 384x512 的缩略图尺寸。
这是从 Google 选择器 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
请求 access_token 时声明的scopes
"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/"
这是我发送到 "image metadata" 端点的请求,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 这样的公司可以下载全尺寸图像。任何 comments/suggestions?
请注意,我知道 Google 照片和 Google 驱动器是两种不同的产品。但是由于您可以通过 Google 驱动器访问 Google 照片中的图像,而且在 Picker 的文档中,它明确地 gives an example 使用 Google 驱动器 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。例如,给定以下
注意 url 中的 /s72
。通过将其替换为 /s0
,我们将获得未裁剪的图像。想要图像宽度为 1024 像素?传入 /s1024
。这是执行此操作的 javascript 代码
thumbnail_url.replace(/\/s\S+?\//g, "/s0/")