Reportez-vous à l'article ci-dessous, et lorsque j'utilise BigQuery à partir du client des API Google pour Python, j'ai eu une erreur liée à l'authentification OAuth, je vais donc laisser une solution. Il semble que cela se soit produit parce que les permissions du fichier n'ont pas pu lire le fichier cacerts.txt, qui définit les certificats SSL qui peuvent être connectés.
Utilisez BigQuery depuis Python. http://qiita.com/shibacow/items/b8f6445058b374291be5
Using OAuth 2.0 for Server to Server Applications https://developers.google.com/api-client-library/python/auth/service-accounts
OSX 10.10.3 Python 2.7.6 httplib2 0.9.1 google-api-python-client 1.4.1
Lors de l'utilisation de la bibliothèque cliente des API Google pour Python, du fichier P12 et de BigQuery, une erreur liée à l'authentification s'est produite et l'API n'a pas pu être accessible.
ssl.SSLError: [Errno 185090050] _ssl.c:343: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
Le fichier exécuté est le suivant.
bq-access.py
import json
from httplib2 import Http
from oauth2client.client import SignedJwtAssertionCredentials
from apiclient.discovery import build
SERVICE_ACCOUNT_EMAIL = '**********@developer.gserviceaccount.com'
PROJECT_NUMBER = '**********'
KEYFILE='******************.p12'
with open(KEYFILE) as f:
private_key = f.read()
credentials = SignedJwtAssertionCredentials(
SERVICE_ACCOUNT_EMAIL, private_key,
'https://www.googleapis.com/auth/bigquery')
http = Http()
credentials.authorize(http)
service = build('bigquery', 'v2', http=http)
response = service.datasets().list(projectId='************').execute()
print response
La page suivante a été très utile.
PYTHON OAUTH2 FAILING WITH X509 ERROR http://bretthutley.com/tag/mac-osx/
On a dit qu'il y avait un problème avec les permissions du fichier cacerts.txt de http2lib, donc quand je l'ai recherché, il n'était certainement lisible que par le groupe appelé wheel.
> cd /Library/Python/2.7/site-packages/httplib2-0.9.1-py2.7.egg/httplib2/
> ls -l cacerts.txt
-rw-r----- 1 root wheel 134862 7 13 18:36 cacerts.txt
Par conséquent, lorsque j'ai modifié les autorisations de fichier comme suit avec la commande chmod, j'ai pu y accéder sans aucun problème.
> sudo chmod 644 cacerts.txt