2016-07-14 18 views
0

ich nicht der EMBED-API Server-Seite Authorization Demo scheinen, um zu arbeiten: https://ga-dev-tools.appspot.com/embed-api/server-side-authorization/EMBED-API, Google Analytics, serverseitige Genehmigung

In der Demo es sagt der folgende:

Sobald die Bibliothek installiert ist, können Sie das folgende Python-Modul zu Ihrem Projekt hinzufügen und die Methode get_access_token() aufrufen, um ein Zugriffstoken zu erhalten, mit dem Sie die Embed-API autorisieren können.

# service-account.py 
from oauth2client.service_account import ServiceAccountCredentials 
# The scope for the OAuth2 request. 
SCOPE = 'https://www.googleapis.com/auth/analytics.readonly' 
# The location of the key file with the key data. 
KEY_FILEPATH = 'path/to/json-key.json' 
# Defines a method to get an access token from the ServiceAccount object. 
def get_access_token(): 
return ServiceAccountCredentials.from_json_keyfile_name(
KEY_FILEPATH, SCOPE).get_access_token().access_token 

habe ich alle vorherigen Schritte erfolgreich getan, aber dies kann ich meinen Kopf einfach nicht umgehen. Wo gebe ich diesen Code ein? Es scheint, als sollte es in eine .py-Datei geschrieben werden.

Kann mir bitte jemand helfen?

Antwort

0

Es hängt von Ihrer Implementierung ab, aber grundsätzlich möchten Sie Ihren Dienstkontocode auf Ihrem Server ausführen und das Zugriffstoken an Ihre Clientanwendung übergeben, damit autorisierte Anfragen vom Browser ausgeführt werden können.

Die gesamte App ist Open Source und Sie können sehen, wo der Service-Account-Code ist in der source code.

Wie in der Demo, wenn Sie Django oder App-Engine verwenden, ist es einfach, Python-Server-Code in Ihrer Website, die das Token zurückgeben und den Wert in template code ersetzen wird.

+0

Danke Matt. Ich möchte nur ein Dashboard auf meiner Website erstellen: http://web-tailor.nl/dashboard/ Dieses Dashboard funktioniert jetzt, aber ich möchte, dass es eine feste Ansicht hat, ohne dass ich mich einloggen muss. Gibt es eine Möglichkeit zu implementieren Dies? Ich bin ein bisschen noob, aber ich habe keinen Server. – PaulusfranCircus

+0

Ohne einen Server wäre es unmöglich, ein [Dienstkonto] (https://developers.google.com/identity/protocols/OAuth2ServiceAccount) zu verwenden. Untersuchen Sie sorgfältig die verschiedenen [OAuth 2.0-Szenarien] (https://developers.google.com/identity/protocols/OAuth2#scenarios). Ein Dienstkonto benötigt einen sicheren Ort zum Ausführen. – Matt

0

Fügen Sie diesen Code in service-account.py Datei und laden Sie es auf Ihrem Server mit FTP. Ich sparte den Code mit Dreamweaver, den Pfad aktualisiert und am Ende der service-account.py Datei folgende Zeile:

print get_access_token() 

hochladen JSON-Datei in demselben Verzeichnis und lief den Befehl python service-account.pyaccess_token zu bekommen.

+0

Ab Python 3 müssen Sie drucken (get_access_token()) https://Stackoverflow.com/a/937516/1082555 –