Laut Google API-Clientbibliotheken ist es möglich, mit der Python-Clientbibliothek auf die Google Photos-API zuzugreifen. Nach der Installation mit pip install -t lib/ google-api-python-client
sehe ich jedoch nichts in Bezug auf die Photos-API.
Wie kann ich die von Google erstellte Client-Bibliothek verwenden, anstatt die REST-APIs manuell aufzurufen?
Ich habe kein Beispiel gefunden, also habe ich das Beispiel für Drive API v3 verwendet und an Photos v1 API angepasst.
Sie können das Beispiel sehen und verwenden .
Der Kern ist:
from apiclient.discovery import build
service = build('photoslibrary', 'v1', http=creds.authorize(Http()))
results = service.albums().list(
pageSize=10, fields="nextPageToken,albums(id,title)").execute()
Die API ist etwas weniger fähig als im obigen Beispiel angegeben, "Felder" werden nicht unterstützt. Aber es funktioniert:
from googleapiclient.discovery import build
from httplib2 import Http
from oauth2client import file, client, tools
SCOPES = 'https://www.googleapis.com/auth/photoslibrary.readonly'
store = file.Storage('token-for-google.json')
creds = store.get()
if not creds or creds.invalid:
flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
creds = tools.run_flow(flow, store)
gdriveservice = build('photoslibrary', 'v1', http=creds.authorize(Http()))
results = gdriveservice.albums().list(
pageSize=10).execute()
items = results.get('albums', [])
for item in items:
print(u'{0} ({1})'.format(item['title'].encode('utf8'), item['id']))