当我通过API查询Google照片中的照片时,它不会返回与图像相关联的任何位置数据.当我在Google相册中查看有关图片的信息时,我可以在地图上看到该位置,但API并未向我提供这些坐标.
[mediaMetadata] => Google_Service_PhotosLibrary_MediaMetadata Object
(
[creationTime] => 2018-07-13T13:20:38Z
[height] => 4032
[photoType:protected] => Google_Service_PhotosLibrary_Photo
[photoDataType:protected] =>
[videoType:protected] => Google_Service_PhotosLibrary_Video
[videoDataType:protected] =>
[width] => 3024
[internal_gapi_mappings:protected] => Array
(
)
[modelData:protected] => Array
(
)
[processed:protected] => Array
(
)
[photo] => Google_Service_PhotosLibrary_Photo Object
(
[apertureFNumber] => 1.8
[cameraMake] => Apple
[cameraModel] => iPhone 8
[exposureTime] =>
[focalLength] => 3.99
[isoEquivalent] => 50
[internal_gapi_mappings:protected] => Array
(
)
[modelData:protected] => Array
(
)
[processed:protected] => Array
(
)
)
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用我自己的帐户对 google photos api 中的 java 应用程序进行身份验证,但根据文档,该帐户不支持 service_account 。问题是 google-console 生成的用于 OAuth2 身份验证的文件不包含类型字段,只有通过为服务帐户创建凭据生成的文件才有效。
我尝试通过读取/不读取生成的文件来验证网络应用程序gcloud auth application-default login
,该文件确实包含 type/client_id/client_secret/refresh_token。
例如:
PhotosLibrarySettings settings =
PhotosLibrarySettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(
GoogleCredentials.fromStream(
new FileInputStream("credentials.json")
)))
.build();
Run Code Online (Sandbox Code Playgroud)
有什么想法可能有帮助吗?
根据Google API客户端库页面,可以使用python客户端库访问Google Photos API,但是使用安装后,pip install -t lib/ google-api-python-client
我看不到与Photos API相关的任何内容。
如何使用Google构建的客户端库,而不是手动调用REST API?
https://photos.google.com/activities/photos_likes返回共享相册中点赞的照片。我想使用 photoslibrary api 或 events api 在共享相册中查找喜欢的照片。
但是,我找不到有关如何使用活动 api 或从 photoslibrary api 执行此操作的文档。我尝试过 photoslibrary api mediaitems.search,但是,它似乎不包含 photos_likes 作为元数据值。
我可以使用 photoslibrary api mediaitems.search 中的哪个元数据值或标签来查找共享相册中喜欢的照片?如果这是错误的 api,我应该使用哪一个?
背景:我想看看如何使用我的 Google Photos 空间,我用 Python 编写了一个小脚本,它使用 Google Photos API 来检索我的所有相册及其内容(使用https://developers.google.com/photos /library/reference/rest/v1/mediaItems/search)。文件信息不存在,但使用mediaItem
baseUrl
(记录的https://developers.google.com/photos/library/reference/rest/v1/mediaItems#MediaItem)然后我可以执行HEAD
请求并content-length
从标头中获取文件信息。这对于照片来说似乎效果很好,但视频的大小被严重低估了。我的猜测是,Google Photos 正在准备流式传输视频,并且不会发送整个视频信息。
问题:有没有办法检索存储在 Google Photos 上的视频的文件大小,希望不必下载整个视频?该应用程序确实知道文件大小,但这似乎在 API 中不可用。有没有办法发送一些请求标头来获取文件大小?
额外信息:我正在使用 Python 和httplib2.Http()
来处理我的HEAD
请求(很高兴使用 requests 模块或任何其他替代方案)。
这是从 API 检索到的信息,该视频文件略高于 100MB(绝对不是 30k):
{
"id": "XYZ",
"productUrl": "https://photos.google.com/lr/photo/XYZ",
"baseUrl": "https://lh3.googleusercontent.com/lr/ABC",
"mimeType": "video/mp4",
"mediaMetadata": {
"creationTime": "2018-11-27T03:43:27Z",
"width": "1920",
"height": "1080",
"video": {
"fps": 120,
"status": "READY"
}
},
"filename": "VID_20181126_174327.mp4"
}
Run Code Online (Sandbox Code Playgroud)
HEAD
这些是从请求接收到的标头baseUrl
:
{ …
Run Code Online (Sandbox Code Playgroud) python video-streaming http-headers google-photos google-photos-api
我正在编写一个程序来在本地备份我的 Google Photos 库,上周代码工作正常,但在过去几天里,我不断从 API 客户端返回错误,说“photoslibrary v1”不存在在 Google 的 API 库中。文档根本没有改变 - 是谷歌那边有问题还是我有问题?
from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
class Photos:
def __init__(self):
self.SCOPE = "https://www.googleapis.com/auth/photoslibrary"
self.CLIENT_SECRET = "client_id.json"
self.store = file.Storage("storage.json")
self.credentials = self.store.get()
if not self.credentials or self.credentials.invalid:
self.flow = client.flow_from_clientsecrets("client_id.json", self.SCOPE)
self.credentials = tools.run_flow(self.flow, self.store)
self.PHOTOS = discovery.build("photoslibrary", "v1", http=self.credentials.authorize(Http()))
photos = Photos()
googleapiclient.errors.UnknownApiNameOrVersion: name: photoslibrary version: v1
Run Code Online (Sandbox Code Playgroud) 我正在构建一个设计工具来创建完全可定制的照片产品,如相册。我使用 firebase(数据库和存储)和 angular4 等技术。为了将 google 照片与我的网络应用程序集成,我使用了 google 照片 api。当我尝试使用 html canvas (toDataUrl) 编辑用户的照片时,出现以下错误:
“对 '...' 图像的访问已被 CORS 策略阻止:没有 'Access-Control-Allow-Origin' 标头存在于请求的资源。”
我知道这意味着什么,但我找不到任何解决方案来编辑用户的照片并将它们用于打印目的。有人可以帮我吗?
即使完全访问该程序,似乎也没有任何方法可以删除创建的照片或相册。
删除支持对于完成照片 API 至关重要。缺乏删除功能确实限制了 API 的实用性。能够创建东西但要求用户手动删除它们是不好的。
我是否忽略了某些东西并且有一种方法可以删除图片和相册?
谢谢!
我正在使用2018年版本的Google Photos API上传图像和媒体,如此处所述:“ 上传字节 ”
当我上传新图像或视频时,响应正文中再也没有任何上传令牌。它始终是一个空主体,根据上面的链接,这意味着字节已经上传(但这是新上传)。
这是一个示例请求/响应:
request:
POST https://photoslibrary.googleapis.com/v1/uploads
request headers:
authorization: Bearer abcd1234
X-Goog-Upload-Protocol: raw
X-Goog-Upload-File-Name: 20140317T082917_001.jpg
content-type: application/octet-stream
content-length: 1292868
accept: application/json
-----------------------------------------------------
response: OK [200]
response headers:
Alt-Svc: [quic=":443"; ma=2592000; v="44,43,39,35"]
Server: [UploadServer]
X-GUploader-UploadID: [AEnB2UqT6y8KyZNCPyAaFeCj7I_ABIlwLJQMpltYzQ7D8blW4v3uKSlMT7dbNjFV0i_7ApzoR-i26ZtZ9kHkB7bI8n8ojgOnNA]
Content-Length: [510]
Date: [Sun, 05 Aug 2018 11:19:15 GMT]
Content-Type: [text/plain]
response body:
null
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用X-GUploader-UploadID
标头中返回的值,但这会导致500
错误。
有人可以提供如何将字节上传到Google Photos API的有效示例吗?
谢谢!
几乎所有的谷歌服务都可用于Android的"谷歌播放服务",有些仍然只能用作java库,并且有指令在android中使用这些java库,
https://developers.google.com/api-client-library/java/google-api-java-client/oauth2#android
上面的链接讨论了如何使用Oauth2创建"GoogleAccountCredential"并将其用于"任务"服务.
现在我想按照相同的流程使用新发布的"Google Photos API",
https://developers.google.com/photos/library/guides/get-started-java#get-library
这里的代码片段,
PhotosLibrarySettings settings =
PhotosLibrarySettings.newBuilder()
.setCredentialsProvider(
FixedCredentialsProvider.create(/* Add credentials here. */))
.build();
Run Code Online (Sandbox Code Playgroud)
但是在这里找不到任何方法来获取android中的Oauth2凭据,它们似乎都是不兼容的.
简而言之,如果我必须在android中使用库,那么上面的代码片段中的'credentialsprovider'应该怎么做?
python ×3
android ×1
canvas ×1
google-api ×1
http ×1
http-headers ×1
java ×1
javascript ×1
oauth-2.0 ×1
python-3.x ×1
todataurl ×1