Ich möchte ein PHP-Skript schreiben, das Webstatistikdaten von GA importiert. Das Skript ist über ein Web-Frontend zugänglich (zum Auslösen des Imports) und befindet sich auf einem lokalen Server (127.0.0.1).
Wie ich aus der Dokumentation verstehe, gibt es zwei Optionen für die Authentifizierung und Verwendung der Kern-API:
Wenn ich die Mechanismen von OAuth2 richtig verstehe, dann ist dies in meinem Szenario keine Option, weil ich keine Rückruf-URL angeben kann. Hacky-Lösungen kommen mir in den Sinn - wie zum Beispiel die Einrichtung einer Web-Profil-Authentifizierung, die direkt vom Browser aus eine GA-Verbindung herstellt und dann die Daten per JavaScript abruft und dem Importskript zuführt. Davon würde ich jedoch lieber absehen. Auch weil die Browser-Interaktion, die den Importprozess auslöst, in Zukunft möglicherweise durch einen Cron-Job ersetzt wird.
Der API-Schlüssel scheint genau zu sein, was ich will, aber die GET-Anfrage vom Browser schlägt fehl.
GET-Anfrage:
%Vor%Antwort:
%Vor%Die URL sollte jedoch in Ordnung sein. Mit Ausnahme des Schlüsselparameters ist es identisch mit demjenigen, der mit Ссылка erstellt wurde und auch funktioniert (AOuth2 wird verwendet In diesem Fall). Der API-Schlüssel ist neu.
Das erneute Generieren eines neuen API-Schlüssels konfrontiert mich mit der nächsten Unannehmlichkeit, die besagt, dass der Schlüssel anscheinend nur für einen Tag gültig ist.
Also am Ende des Tages ist meine Frage:
Ist es möglich, Daten in dem oben beschriebenen Szenario abzurufen, ohne sich täglich authentifizieren oder API-Schlüssel generieren zu müssen?
Wie bereits vorgeschlagen, verwenden Sie diese Bibliothek: Ссылка aber, anstatt oauth zu verwenden, erstellen Sie ein Dienstkonto von der API-Konsole (wählen Sie einfach die Server-Anwendung). Dadurch erhalten Sie eine Client-ID, eine E-Mail zur Identifizierung des Dienstkontos und eine * .p12-Datei mit dem privaten Schlüssel.
Sie müssen dann das Dienstkonto (die E-Mail) zu Ihren Analysen als Administrator hinzufügen, um die benötigten Daten zu erhalten.
Um den Service zu nutzen:
%Vor%Um einige Daten zu erhalten:
%Vor%Für die Details überprüfen Sie die API-Dokumentation. Seien Sie vorsichtig, es gibt eine Abfrage-Obergrenze (es sei denn, Sie zahlen)
Ich denke, damit dies funktioniert, müssen Sie OAuth verwenden, aber mit einer leichten Änderung, um es vom Server auszuführen. Google ruft diese Authentifizierungsmethode " OAuth 2.0 für Web-Server-Anwendungen verwenden "
aufWie auf dieser Seite beschrieben, können Sie eine PHP-Client-Bibliothek verwenden, um die Authentifizierung durchzuführen. Die Client-Bibliothek befindet sich hier .
Ein Beispiel für die Verwendung dieser Client-Bibliothek finden Sie auf den Hilfeseiten des gleichen Projekts >. Beachten Sie, dass Sie einige Änderungen am Code vornehmen müssen, da die Kommentare sagen, dass das Token in db gespeichert und regelmäßig aktualisiert werden soll.
%Vor% Ich habe ein ähnliches Setup. Die Sache, die Sie nicht erkennen, ist, dass Sie eine http://localhost
oder http://127.0.0.1
oder irgendetwas anderes als Ursprung und Rückruf-URL angeben können. Sie müssen ein Webinterface auf Ihrem lokalen Server einrichten, das eine OAuth-Konfiguration für den Benutzer mit GA-Zugriff initiiert. Beachten Sie, dass dies einmalig ist. Der Callback-Handler muss in etwa so aussehen:
Hinweis: Die hier verwendeten Bibliotheken sind die gleichen wie die vorherige Antwort, der detaillierte Code befindet sich im Wrapper.
%Vor%Nachdem Sie das gespeicherte Token gespeichert haben, müssen Sie es im Client festlegen, bevor Sie GA anfragen, um Ihre Analysedaten abzurufen. Wie:
%Vor% Das GAPI::init()
wird wie folgt implementiert:
Meine MySQL-Tabelle hat Spalten wie id, title, send_to_emails, frequency, dimensions, metrics, filters, profile_id
, die jeden Bericht vollständig von GA generieren. Sie können mit ihnen umgehen, indem Sie die Dokumentation verwenden, Liste der Metriken & amp; Dimensionen und den Sandbox-Tester , den Sie bereits kennen.
Tags und Links php google-analytics-api