Selon Bibliothèques clientes de Google API page, il est possible d'accéder à l'API Google Photos à l'aide de la bibliothèque cliente Python, mais après l'avoir installée à l'aide de pip install -t lib/ google-api-python-client
, rien ne se rapporte à l'API Photos.
Comment utiliser la bibliothèque client construite par Google au lieu d'appeler manuellement les API REST?
Je n'ai trouvé aucun exemple, j'ai donc pris l'exemple de Drive API v3 et je l'ai adapté à l'API Photos v1.
Vous pouvez voir et utiliser l'exemple .
Le Gist est:
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()
L'API est un peu moins capable que celle indiquée dans l'exemple ci-dessus, elle ne supporte pas les "champs". Mais, il fonctionne:
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']))