Comment utiliser OAuth et l'API avec le client API Google pour python. Cette fois, le compte de service est utilisé pour l'authentification et l'API cible Calendar.
Page d'explication sur la certification officielle de Google. Using OAuth 2.0 for Server to Server Applications
J'utiliserai ceci. google/google-api-python-client
Installez avec pip.
$ pip install --upgrade google-api-python-client
Google Developers Console
Tout d'abord, créez un compte de service dans la Google Developers Console.
Définissez les autorisations de l'API dans la Console d'administration.
oauth2client.client.AccessTokenRefreshError: access_denied: Requested client not authorized.
google_auth.py
import json
from httplib2 import Http
from oauth2client.client import SignedJwtAssertionCredentials
from googleapiclient.discovery import build
#Adresse e-mail du compte de service
client_email = '[email protected]'
#Certification de la version p12
fileName = "./project.p12"
with open(fileName, 'rb') as f:
private_key = f.read()
credentials = SignedJwtAssertionCredentials(client_email, private_key,
'https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.readonly'
,sub='[email protected]')
#certification de version json
#fileName = "./project.json"
#json_key = json.load(open(fileName))
#credentials = SignedJwtAssertionCredentials(json_key['client_email'], json_key['private_key'],
# 'https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/calendar.readonly'
# ,sub='[email protected]')
http = Http()
credentials.authorize(http)
# Calendar API
from apiclient.discovery import build
calendar_service = build('calendar', 'v3', http=http)
calendar_list = calendar_service.calendarList().get(calendarId='[email protected]').execute()
print calendar_list['summary']
Résultat d'exécution)
[email protected]
Remarques)
googleapiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/calendar/v3/users/me/calendarList/info%40example.com?alt=json returned "Not Found">
https://developers.google.com/api-client-library/python/auth/service-accounts?hl=ja
http://stackoverflow.com/questions/21407985/google-calendar-api-404-on-calendar-service-account
http://kb.cloudiway.com/errorunauthorized_client-descriptionunauthorized-client-or-scope-in-request-uri/
c'est tout.
Recommended Posts