Utilisation de Google Calendar API v 3 avec Python
Quelqu'un peut-il me donner une explication claire de la façon d'obtenir le Calendrier Google API v3 de travail avec le Client Python? Plus précisément, la première OAuth étape est grandement me confondre. Tout ce que je dois faire est d'accéder à mon propre calendrier, lire, et faire des modifications. Google fournit ce code pour la configuration de mon application:
import gflags
import httplib2
from apiclient.discovery import build
from oauth2client.file import Storage
from oauth2client.client import OAuth2WebServerFlow
from oauth2client.tools import run
FLAGS = gflags.FLAGS
# Set up a Flow object to be used if we need to authenticate. This
# sample uses OAuth 2.0, and we set up the OAuth2WebServerFlow with
# the information it needs to authenticate. Note that it is called
# the Web Server Flow, but it can also handle the flow for native
# applications
# The client_id and client_secret are copied from the API Access tab on
# the Google APIs Console
FLOW = OAuth2WebServerFlow(
client_id='YOUR_CLIENT_ID',
client_secret='YOUR_CLIENT_SECRET',
scope='https://www.googleapis.com/auth/calendar',
user_agent='YOUR_APPLICATION_NAME/YOUR_APPLICATION_VERSION')
# To disable the local server feature, uncomment the following line:
# FLAGS.auth_local_webserver = False
# If the Credentials don't exist or are invalid, run through the native client
# flow. The Storage object will ensure that if successful the good
# Credentials will get written back to a file.
storage = Storage('calendar.dat')
credentials = storage.get()
if credentials is None or credentials.invalid == True:
credentials = run(FLOW, storage)
# Create an httplib2.Http object to handle our HTTP requests and authorize it
# with our good Credentials.
http = httplib2.Http()
http = credentials.authorize(http)
# Build a service object for interacting with the API. Visit
# the Google APIs Console
# to get a developerKey for your own application.
service = build(serviceName='calendar', version='v3', http=http,
developerKey='YOUR_DEVELOPER_KEY')
Mais (a) il n'a absolument aucun sens pour moi; le commentaire explications sont terribles, et (b) je ne sais pas quoi mettre dans les variables. J'ai enregistré mon programme avec Google, et a signé pour un Compte de Service de clé. Mais tout ça m'a donné était une clé chiffrée fichier à télécharger, et un numéro de client. Je n'ai aucune idée de ce qu'est un "developerKey" est, ou de ce qu'est un "client_secret"? Est-ce la clé? Si elle l'est, comment puis-je l'obtenir, car il est réellement contenue dans un fichier crypté? Enfin, compte tenu de la relativement simples objectifs de mon API utiliser (c'est à dire, ce n'est pas un multi-utilisateur, multi-accès de l'opération), est-il un moyen plus simple de faire cela? Merci.
source d'informationauteur user1427661
Vous devez vous connecter pour publier un commentaire.
Un simple (lire: la façon dont je l'ai fait) une façon de faire cela est de créer une application web, au lieu d'un compte de service. Cela peut sembler bizarre, puisque vous n'avez pas besoin de toute sorte d'application web, mais je l'utilise de la même manière que vous faites des requêtes pour mon propre calendrier/ajouter des événements/etc. - tout à partir de la ligne de commande et sans aucune sorte de web-app interaction. Il y a des façons de le faire avec un compte de service (je vais bricoler si vous voulez bien aller sur la route), mais cela a fonctionné pour moi jusqu'à présent.
Après que vous créez une application web, vous aurez alors toutes les informations indiquées ci-dessus (note de côté: l'exemple de code ci-dessus est basée sur une application web pour utiliser un compte de service de votre
FLOW
besoins à l'appel deflow_from_clientsecrets
et d'autres ajustements doivent être apportés - voir ici). Par conséquent, vous serez en mesure de remplir cette section:Vous pouvez maintenant remplir avec les valeurs que vous voyez dans l'API console (
client_id
= l'ensemble de laClient ID
chaîne,client_secret
= les secrets du client,scope
est la même et leuser_agent
peut être ce que vous voulez). Comme pour leservice
ligne,developerKey
est la clé API que vous pouvez trouver sous leSimple API Access
section dans l'API de la console (l'étiquette estAPI key
):Vous pouvez ensuite ajouter une vérification simple comme la suite pour voir si cela a fonctionné:
Maintenant, lorsque vous exécutez cette, un navigateur de la fenêtre pop up qui vous permettra de compléter le processus d'authentification. Ce que cela signifie, c'est que tout l'authentification est gérée par Google, et la réponse d'authentification d'informations seront stockées dans
calendar.dat
. Ce fichier (qui sera stocké dans le même répertoire que votre script) contiendra l'authentification de l'info que le service va maintenant utiliser. Qu'est ce qui se passe ici:Il vérifie l'existence d'informations d'identification valides par la recherche de ce fichier et vérifier que le contenu (tout ceci est abstrait, loin de vous pour le rendre plus facile à mettre en œuvre). Après l'authentification, le
if
déclaration d'évaluerFalse
et vous serez en mesure d'accéder à vos données sans avoir besoin de s'authentifier à nouveau.J'espère que ça brille un peu plus de lumière sur le processus - c'est une longue histoire courte, faire une application web et d'utiliser les paramètres de cela, s'authentifier une fois et puis l'oublier. Je suis sûr qu'il ya différents points que je suis dominant, mais j'espère qu'il va travailler pour votre situation.
Google a maintenant un bon exemple d'application que vous avez et le faire fonctionner sans trop de chichi. Il est disponible en tant que "5 minutes de l'expérience - Démarrage rapide" sur leur
Prise En Main page.
Il vous donnera une URL à visiter directement si vous travaillez sur un serveur distant sans navigateur.