En ce qui concerne l'utilisation de l'API Google, l'accès avec l'identifiant et le mot de passe Google a été interdit en mai 2015. Actuellement, vous devez accéder à l'aide d'OAuth 2.0. En ce qui concerne l'authentification de Python vers OAuth 2.0, il y avait étonnamment peu d'informations et cela a pris beaucoup de temps, je vais donc laisser la méthode. Cet article concerne les feuilles de calcul, mais je soupçonne que d'autres API qui utilisent la bibliothèque gdata peuvent également être authentifiées (non confirmées).
python 2.7.5 MacOS X 10.9.5
Il y a certaines choses que vous devez faire pour vous authentifier avec OAuth 2.0. Laissez les étapes dans l'ordre.
Les feuilles de calcul seront gérées à l'aide de l'API Drive de l'API Google Apps. Par conséquent, activez l'API requise par les opérations suivantes.
Accédez à la Developers Console (https://console.developers.google.com/project) et sélectionnez votre projet. Si le projet n'existe pas, créez-en un avec un nom approprié.
Sélectionnez "API" dans le menu de gauche.
"Drive API" est sur la droite.
"Activer l'API"
Activée.
Ensuite, vous devez créer un ID client et une clé à utiliser avec OAuth. Je publierai la méthode.
De même, sur l'écran qui ouvre le projet dans Developers Console, sélectionnez "Credentials" dans le menu de gauche.
"Créer un nouvel ID client"
Sélectionnez "Compte de service" et "Créer un ID client"
Le fichier json sera téléchargé localement et une boîte de dialogue de fin sera affichée. (Ce fichier json n'est pas utilisé dans cette procédure)
Confirmez que l'ID client a été émis. Sélectionnez "Générer une nouvelle clé P12" et téléchargez la clé privée (.p12).
La clé privée a été stockée localement. (La clé privée enregistrée est "MyProject.p12")
Pour l'ID client créé dans la procédure ci-dessus, il est nécessaire de définir le partage du côté de la feuille de calcul.
Tout d'abord, notez l'adresse e-mail de l'ID client émis.
Ouvrez la feuille de calcul à laquelle vous souhaitez accéder avec l'API et sélectionnez "Partager".
Saisissez l'adresse e-mail émise et cliquez sur «Envoyer».
Ceci termine les paramètres de partage.
Maintenant, c'est enfin prêt. Accès avec du code python.
Tout d'abord, installez les bibliothèques requises.
python
$ pip install gdata oauth2client
La partie authentification est la source suivante.
oauth2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from oauth2client.client import SignedJwtAssertionCredentials
import gdata.spreadsheets.client
#Informations requises pour l'authentification
client_email = "[email protected]" #Adresse e-mail émise à l'étape 2
with open("MyProject.p12") as f: private_key = f.read() #Clé privée émise à l'étape 2
#Créer des identifiants
scope = ["https://spreadsheets.google.com/feeds"]
credentials = SignedJwtAssertionCredentials(client_email, private_key,
scope=scope)
#Préparation du client pour la feuille de calcul
client = gdata.spreadsheets.client.SpreadsheetsClient()
# OAuth2.Paramètre d'authentification à 0
auth_token = gdata.gauth.OAuth2TokenFromCredentials(credentials)
auth_token.authorize(client)
# ----Vous pouvez maintenant utiliser la bibliothèque pour accéder à la feuille de calcul---- #
#Obtenir la feuille de calcul
sheets = client.get_worksheets("1TAVVsyhCM_nprkpa0-LGWBheaXt_ipX84fIIhJw2fa0") #Spécifiez l'ID de la feuille de calcul
for sheet in sheets.entry:
print sheet.get_worksheet_id(), sheet.title
Si la dernière instruction d'impression est sortie comme ceci, c'est la preuve que vous pouvez accéder normalement.
python
od6 <ns0:title xmlns:ns0="http://www.w3.org/2005/Atom">シート1</ns0:title>
PKCS12 format is not supported by the PyCrypto library.
PKCS12 format is not supported by the PyCrypto library. Try converting to a "PEM" (openssl pkcs12 -in xxxxx.p12 -nodes -nocerts > privatekey.pem) or using PyOpenSSL if native code is an option.
L'erreur qui s'est produite dans la partie suivante.
with open("MyProject.p12") as f
Vous pouvez modifier le format de la clé privée tel qu'il apparaît dans l'instruction d'erreur.
python
$ openssl pkcs12 -in MyProject.p12 -nodes -nocerts > MyProject.pem
Enter Import Password: #Entrez "pas un secret"
Modifiez ensuite le fichier pour lire le code.
with open("MyProject.pem") as f
GoogleAppEngine utilisant l'API Google Drive avec Google App Engine pour PHP-Qiita http://qiita.com/hikoalpha/items/04ef84cd5f035ff64f23
python - Using Spreadsheet API OAuth2 with Certificate Authentication - Stack Overflow http://stackoverflow.com/questions/20209178/using-spreadsheet-api-oauth2-with-certificate-authentication/20211057#20211057
Using OAuth 2.0 for Server to Server Applications | Google Identity Platform | Google Developers https://developers.google.com/identity/protocols/OAuth2ServiceAccount?hl=ja
OAuth 2.0 | API Client Library for Python | Google Developers https://developers.google.com/api-client-library/python/guide/aaa_oauth?hl=ja
google app engine - SignedJwtAssertionCredentials on AppEngine doesn't recognize PEM key - Stack Overflow http://stackoverflow.com/questions/17993604/signedjwtassertioncredentials-on-appengine-doesnt-recognize-pem-key
gdata: gdata.spreadsheets.client Namespace Reference - doxygen documentation | Fossies Dox http://fossies.org/dox/gdata-2.0.18/namespacegdata_1_1spreadsheets_1_1client.html
Recommended Posts