Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python

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

Umgebung

OSX 10.10.3 Python 2.7.6 httplib2 0.9.1 google-api-python-client 1.4.1

Veranstaltung

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

Problemumgehung

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

Umgang mit OAuth2-Fehlern bei Verwendung von Google APIs aus Python
Umgang mit SSL-Fehlern beim Herstellen einer Verbindung zu S3 mit Python boto
[Python] Umgang mit Pandas read_html Lesefehler
Umgang mit UnicodeDecodeError beim Ausführen des Downloads von Google-Bildern
Umgang mit dem Fehler "Typfehler: Keine übereinstimmende Signatur gefunden" bei Verwendung von pandas fillna
So aktualisieren Sie Google Sheets von Python
Wie man mit Python-Installationsfehlern in pyenv umgeht (BUILD FAILED)
Herstellen einer Verbindung zum Cloud Firestore über Google Cloud-Funktionen mit Python-Code
Umgang mit Fehlern bei der Installation von Python und Pip mit Choco
Umgang mit Fehlern beim Auftreffen auf pip pip
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
[AWS] Umgang mit WordPress "Beim Zuschneiden eines Bildes ist ein Fehler aufgetreten."
Verwendung von OAuth und API für Dienstkonten mit Google API Client für Python
So kratzen Sie Bilddaten von Flickr mit Python
Fehler aufgrund eines Konflikts zwischen Pythons bei der Verwendung von Gurobi
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
Beenden bei Verwendung von Python in Terminal (Mac)
Analysieren mit Google Colaboratory mithilfe der Kaggle-API
Fehler beim Spielen mit Python
So aktualisieren Sie die Software beim Erstellen von Linux (CentOS) mit Vagrant ~ Am Beispiel eines Upgrades von Python 2.7 auf Python 3.6 ~
So laden Sie keine Bilder, wenn Sie PhantomJS mit Selen verwenden
So lösen Sie den CSRF-Schutz bei Verwendung von AngularJS mit Django
[AWS] Umgang mit dem Fehler "Ungültiger Codepunkt" in CloudSearch
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
So aktualisieren Sie FC2-Blogs usw. mithilfe von XMLRPC mit Python
So installieren Sie Python mit Anaconda
Python: So verwenden Sie Async mit
Verwenden von Rstan aus Python mit PypeR
Umgang mit unausgeglichenen Daten
Erste Schritte mit Python
Umgang mit dem DistributionNotFound-Fehler
Wie man die Anzahl der GPUs aus Python kennt ~ Hinweise zur Verwendung von Multiprocessing mit pytorch ~
So berechnen Sie das Datum mit Python
So greifen Sie über Python auf Wikipedia zu
Umgang mit dem Terminal, das ohne Erlaubnis in die pipenv-Umgebung gelangt, wenn pipenv mit vscode verwendet wird
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Greifen Sie mit OAuth 2.0 von Python aus auf Tabellenkalkulationen zu
Bei Verwendung von MeCab mit virtualenv python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Wie man Japanern nicht entgeht, wenn man mit json in Python umgeht
So zeigen Sie Formeln in Latex an, wenn Sie sympy (> = 1.4) in Google Colaboratory verwenden
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Umgang mit Fehlern bei der Installation von Whitenoise und der Bereitstellung auf Heroku
So vermeiden Sie doppelte Daten bei der Eingabe von Python in SQLite.
[Python] Fehler- und Lösungsnotiz bei Verwendung von venv mit pyenv + anaconda
Bei Verwendung des Apollo-Verbunds mit gqlgen kann keine Bindung an einen Schnittstellenfehler hergestellt werden
Umgang mit dem Fehler "Fehler beim Laden des Moduls" canberra-gtk-module ", der beim Ausführen von OpenCV auftritt
Von Python bis zur Verwendung von MeCab (und CaboCha)
So arbeiten Sie mit BigQuery in Python
Versuchen Sie, Python mit Google Cloud-Funktionen zu verwenden
Umgang mit Enum-Kompatibilitätsfehlern
Wie man einen Taschentest mit Python macht
So suchen Sie in Google Colaboratory nach Google Drive
So zeigen Sie Python-Japanisch mit Lolipop an