Holen Sie sich AccessToken für das Dienstkonto mit dem Firebase Admin Python SDK

Nachtrag

Das Firebase Admin Python SDK v2.0.0 wurde am 17. Mai 2017 veröffentlicht. Einige Aufrufmethoden waren unterschiedlich, daher habe ich es als Ergänzung hinzugefügt.

Überblick

Das Firebase SDK für Python wurde am 4. April 2017 von Google veröffentlicht (ca. 4/5 am frühen Morgen in Japan). Der offizielle Name lautet "Firebase Admin Python SDK". Wie der Name schon sagt, handelt es sich um ein SDK, das APIs rund um Admin unterstützt.

Release Notes  |  Firebase

Was Sie mit dem Firebase Admin Python SDK tun können

Wie der Name schon sagt (zum zweiten Mal), wird die Verarbeitung rund um Admin bereitgestellt. Wenn ich jedoch die Referenz und das Handbuch lese, scheint es, dass die derzeit bereitgestellte Funktion "nur der Teil ist, der ein benutzerdefiniertes Token und ein Zugriffstoken aus dem privaten Schlüssel des Dienstkontos erstellt".

Wie benutzt man

Add the Firebase Admin SDK to your Server  |  Firebase

Ich werde den oben beschriebenen Inhalt so verfolgen, wie er ist, aber ** Seien Sie vorsichtig, da er verstopft wird, wenn er so ist, wie er ist **.

Holen Sie sich zunächst den privaten Schlüssel. Öffnen Sie das Projekt auf der Firebase-Konsolensite (https://console.firebase.com/), gehen Sie im Menü zu Ausrüstung> Projekteinstellungen> Dienstkonto neben Übersicht und klicken Sie unten auf dem Bildschirm auf "Neuer privater Schlüssel". Klicken Sie auf die Schaltfläche "Generieren", um die JSON-Datei abzurufen.

Installieren Sie dann die erforderlichen Bibliotheken mit pip.

$ pip install firebase-admin

Der Code sieht so aus.

v1.0.0

getToken.py



import firebase_admin
from firebase_admin import credentials

def getToken:

    credential = credentials.Certificate('./serviceAccountKey.json')
    scopes = [
        'https://www.googleapis.com/auth/firebase.database',
        'https://www.googleapis.com/auth/userinfo.email'
    ]

    # access_Bekomme Token
    accessTokenInfo = credential.get_credential().create_scoped(scopes).get_access_token()
    print("access_token:" + accessTokenInfo.access_token)
    print("expire:" + str(accessTokenInfo.expires_in))

if __name__ == '__main__':
    getToken()

Der Unterschied zum offiziellen Dokument besteht darin, dass Sie den Bereich ohne Verwendung von "firebase_admin.initialize_app ()" auf "kritisch" setzen und das AccessToken so wie es ist erhalten können.

v2.0.0

getToken.py


import firebase_admin
from firebase_admin import credentials

def getToken:

    credential = credentials.Certificate('./serviceAccountKey.json')

    # access_Bekomme Token
    accessTokenInfo = credential.get_access_token()
    print("access_token:" + accessTokenInfo.access_token)
    print("expire:" + str(accessTokenInfo.expiry)) # 「20XX-XX-XX XX:XX:XX.XXXXXX "wird zurückgegeben

if __name__ == '__main__':
    getToken()

Der Unterschied zu Version 1.0.0 besteht darin, dass Sie die Anmeldeinformationen nicht mehr einmal mit "get_credential ()" abrufen oder den Bereich festlegen müssen. Während der Inhalt des Ablaufdatums die Anzahl der in Version 1.0.0 verbleibenden Sekunden war, lautet der Eigenschaftsname ab Version 2.00.0 "Ablaufdatum" und das verfügbare Ablaufdatum wird als Datum / Uhrzeit-Objekt zurückgegeben. Ich werde.

Greifen Sie mit dem erworbenen Token auf die Echtzeitdatenbank zu

Wenn Sie es mit RealtimeDatabase verwenden, können Sie darauf zugreifen, indem Sie es in den Parameter access_token eingeben. Da dieses AccessToken von einem Dienstkonto erstellt wird, ist es möglich zu lesen und zu schreiben, auch wenn alle Benutzer in den Regeln der Datenbank falsch sind. Seien Sie also vorsichtig, wenn Sie damit umgehen. ** Das Ablaufdatum des Tokens beträgt übrigens eine Stunde ab Ausstellung.

https://{FIREBASE_PROJECT_ID}.firebaseio.com/hoge.json?access_token={FIREBASE_ACCESS_TOKEN}

Ich frage mich, ob Sie CustomToken auf die gleiche Weise erhalten können, aber es ist immer noch nicht verifiziert, da es nicht mehr das ist, was Sie benötigen, wenn Sie AccessToken korrekt erhalten.

Recommended Posts

Holen Sie sich AccessToken für das Dienstkonto mit dem Firebase Admin Python SDK
Holen Sie sich ein Zugriffstoken für die Pocket-API
[Für Anfänger] Web-Scraping mit Python "Greifen Sie auf die URL auf der Seite zu, um den Inhalt abzurufen."
Erstellen Sie einen Twitter-BOT mit dem GoogleAppEngine SDK für Python
[Python] Ruft das Skriptausführungsverzeichnis mit einem absoluten Pfad ab
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich das Wetter mit Python-Anfragen 2
Gewähren Sie mit dem Befehl curl ein Zugriffstoken und POSTEN Sie die API
Ruft den Rückgabewert eines externen Shell-Skripts (ls) mit python3 ab
[Python] Ruft den Variablennamen mit str ab
Arbeiten mit OpenStack mit dem Python SDK
Registrieren Sie Benutzer mit Google Admin SDK (Python)
Holen Sie sich ein Zeichen für Conoha mit Python
Crawl Follower für ein Konto bei Instagram
Verwendung von OAuth und API für Dienstkonten mit Google API Client für Python
Der Weg zur Aktualisierung von Splunkbase mit Ihrer eigenen Splunk-App, die mit Python v2 / v3 kompatibel ist
Erstellen Sie einen Filter, um ein Zugriffstoken mit der Graph-API (Flask) zu erhalten.
[Einführung in Python] So erhalten Sie den Datenindex mit der for-Anweisung
[Python] Holen Sie sich die Dateien mit Python in den Ordner
Holen Sie sich ein Ticket für einen Themenpark mit Python
[Python] matplotlib: Formatieren Sie das Diagramm für Ihre Dissertation
Erstellen einer Anaconda-Umgebung für Python mit pyenv
Verwenden Sie vorerst Logger mit Python
Mit dem Evernote SDK für Python 3 erhalten Sie Informationen zu Notizen
[Python] Prognostizieren Sie die richtige Miete für Wohnungen
Rufen Sie Polly aus dem AWS SDK für Python auf
Für diejenigen, die Janome ordnungsgemäß mit Python installiert haben sollten, aber eine Fehlermeldung erhalten
Machen Sie die Python CUI-Anwendung zu einer App für Mac
Lernen Sie die Service Bus-Warteschlange mit Azure SDK for Go kennen (1)
Führen Sie es vorerst mit CentOS7 + Apache2.4 + Python3.6 aus
Flottenbereitstellung mit AWS IoT SDK für Python v2
[Python] Holen Sie sich die Zahlen im Diagramm mit OCR
Benutzer ohne Konto greifen auf die AWS Management Console zu
Mit Python psycopg2 erhalten Sie Ergebnisse im Diktatformat
Informationen zur Steuerung von Motoren mit Python auf RaspberryPi
Erstellen einer Umgebung für die Verarbeitung natürlicher Sprache mit Python
Python: Ruft eine Liste der Methoden für ein Objekt ab
Holen Sie sich mit Python den Betriebsstatus von JR West
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Programmieren Sie überall mit Ihrem Smartphone! (Empfohlen für C-Sprache / Python)
Greifen Sie über Python (boto) mit dem Dienstkonto und der Schlüsseldatei auf Google Cloud Storage zu (S. 12).
So erhalten Sie Informationen von Organisationen, Cost Explorer eines anderen AWS-Kontos bei Lambda (Python)