Verwendung von OAuth und API mit Google API Client für Python. Dieses Mal wird das Dienstkonto zur Authentifizierung verwendet und die API zielt auf den Kalender ab.
Erklärungsseite zur offiziellen Zertifizierung von Google. Using OAuth 2.0 for Server to Server Applications
Ich werde das benutzen. google/google-api-python-client
Mit pip installieren.
$ pip install --upgrade google-api-python-client
Google Developers Console
Erstellen Sie zunächst ein Dienstkonto in der Google Developers Console.
Legen Sie die API-Berechtigungen in der [Administrationskonsole] fest (https://admin.google.com/).
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
#E-Mail-Adresse des Dienstkontos
client_email = '[email protected]'
#p12 Versionszertifizierung
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]')
#json Versionszertifizierung
#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']
Ausführungsergebnis)
[email protected]
Vorsichtsmaßnahmen)
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/
das ist alles.
Recommended Posts