Lesen Sie den folgenden Artikel. Wenn Sie BigQuery vom Google APIs Client für Python verwenden, ist ein Fehler im Zusammenhang mit der OAuth-Authentifizierung aufgetreten, sodass ich eine Lösung hinterlassen werde. Es scheint, dass dies passiert ist, weil die Dateiberechtigungen die Datei cacerts.txt nicht lesen konnten, die die SSL-Zertifikate definiert, die verbunden werden können.
Verwenden Sie BigQuery aus 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
Bei Verwendung der Google APIs-Clientbibliothek für Python, der P12-Datei und BigQuery ist ein authentifizierungsbezogener Fehler aufgetreten, auf den nicht zugegriffen werden konnte.
ssl.SSLError: [Errno 185090050] _ssl.c:343: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib
Die ausgeführte Datei lautet wie folgt.
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
Die folgende Seite war sehr hilfreich.
PYTHON OAUTH2 FAILING WITH X509 ERROR http://bretthutley.com/tag/mac-osx/
Es wurde gesagt, dass es ein Problem mit den Berechtigungen der Datei cacerts.txt von http2lib gab. Als ich sie nachschlug, war sie sicherlich nur für die Gruppe namens Wheel lesbar.
> 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
Als ich die Dateiberechtigungen mit dem Befehl chmod wie folgt änderte, konnte ich daher problemlos darauf zugreifen.
> sudo chmod 644 cacerts.txt
Recommended Posts