Ich erstelle ein Skript, das auf der Schritt-für-Schritt-Anleitung von Google Analytics auf dieser Seite basiert:
https://developers.google.com/analytics/resources/tutorials/hello-analytics-api
Die Autorisierung erfolgt ohne Probleme, bis versucht wird, auf Daten zuzugreifen. Der Rückkehrcode lautet 403 und die Fehlermeldung lautet:
Der Nutzer hat kein Google Analytics-Konto
Diese Nachricht hat keinen Sinn: Mein Konto enthält Google Analytics-Daten, die mehrere Websites verfolgen, und ich kann problemlos über einen Webbrowser darauf zugreifen. Ich habe die Analytics-API über die Google APIs-Konsole zugelassen, und der API-Zugriff gibt mir die richtigen Daten.
quelle
Fügen Sie einfach Ihre angegebene E-Mail-Adresse hinzu (Format von
71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com
)an Benutzermanager:
Wünschte, es hilft dir
quelle
Ich stand vor dem gleichen Problem. Es wurde behoben, indem die E-Mail-ID des Dienstkontonutzers (
your [email protected]
) zu den Benutzern in Ihrem Analytics-Konto hinzugefügt wurde.Analytics-Homepage -> Admin (linker Bereich) -> Benutzerverwaltung -> Hinzufügen (klicken Sie auf das Pluszeichen auf der rechten Seite des Menüs) -> Neuen Benutzer hinzufügen -> Fügen Sie die E-Mail-ID in die eingegebenen E-Mail-Adressen ein.
Dies wird das Problem lösen.
quelle
Es wird in einem Kommentar oben erwähnt, aber wenn Sie die E-Mail-Adresse unter der Benutzerverwaltung für Ihr Konto hinzufügen , funktioniert es nicht. Sie müssen im Ansichtsteil des Bildschirms auf die Benutzerverwaltung klicken .
quelle
User Management
Link unter Ansicht an meinem Ende nicht sehenDiese Fehlermeldung wird auch angezeigt, wenn Sie sich noch nie mit dem Google-Konto angemeldet haben, bei dem Sie sich authentifizieren möchten.
quelle
Ich habe den 403-Fehler erhalten, bis ich die Berechtigungen des E-Mail-Kontos in Google Analytics von "Lesen & Analysieren" in etwas anderes geändert, gespeichert und dann die Berechtigungen wieder in "Lesen & Analysieren" geändert habe und es funktioniert hat.
quelle
Falls dies nicht funktioniert, versuchen Sie, Ihre heruntergeladene JSON-Datei zu öffnen. Suchen Sie nach
client_email
dieser E-Mail-Adresse, kopieren Sie sie und fügen Sie sie der Ansichtsdatei hinzuKlicke auf
Wenn das immer noch nicht funktioniert
quelle
Diese Botschaft , die wir erhalten , wenn keine Erlaubnis erteilt
client_email
, in den Google alalytics ,client_email
ist , dass Sie bekam aus der JSON - Datei . Um die Berechtigung für dieclient_email
Verwendung in Ihrer App zu erteilen , rufen Sie die Google Analytics-Website auf und klicken Sie auf "Admin (Einstellungssymbol)".Sie erhalten die Menüliste richtig, klicken Sie dort auf "Benutzerverwaltung anzeigen"
Dort sehen Sie das Symbol "+" und "Benutzer hinzufügen".
Sobald Sie darauf klicken, müssen Sie
client_email
das Feld "E-Mail-Adresse" hinzufügen und speichern. Sie sollten bereit sein!quelle
Ich habe den 403-Fehler getroffen. Diese Schritte haben mich darum herum gebracht. Um es klar auszudrücken, habe ich versucht, Googles Beispiel "HelloAnalytics.php" mit OAuth zum Laufen zu bringen (ohne Benutzerinteraktion, geeignet für Cron-Jobs usw.).
Nach dem Aktivieren der Analytics-API habe ich unter APIs & Auth / Credentials ein neues "Dienstkonto" erstellt. und speicherte das .p12-Schlüsselpaar. Ich ging dann in die Analytics-Benutzerverwaltungskonsole und fügte die E-Mail-Adresse des Dienstbenutzers hinzu.
Die .p12-Autorisierung mit der PHP-API funktioniert, wenn ich abhake nur „Read & Analyze“ nur in der Liste Berechtigungen. Wenn ich "Benutzer verwalten" und / oder "Bearbeiten" hinzufüge, erhalte ich die 403. Ich hoffe, das ist hilfreich, ich habe ein paar Stunden daran gearbeitet ...
quelle
Der Benutzer, für den Sie die API verwenden möchten, hat seinen GA-Dienst nicht aktiviert.
Nur ein Google-Konto zu haben, reicht nicht aus .
quelle
Ich hatte auch dieses Problem und stellte fest, dass das Problem darin bestand, dass ich zu viele Berechtigungen angefordert hatte. Die Entwicklerkonsole fordert Sie auf, sowohl nach Berechtigungen
http://www.googleapis.com/auth/analytics
als auch nachhttp://www.googleapis.com/auth/analytics.readonly
Berechtigungen zu fragen . Dies hat nicht funktioniert, als ich auch densub
Anspruch verwendet habe. Einsub
Anspruch weist Google an, ein Zugriffstoken auszustellen, das im Auftrag eines anderen Nutzers ausgeführt wird - in meinem Fall des Google-Kontos, dem das Dienstkonto gehört. Ich entfernte dieanalytics
Erlaubnis und bliebanalytics.readonly
bei der Unterforderung:Mit dem ausgestellten Bearer-Token kann ich (zumindest einige) Google Analytics-Abfragen an Profile durchführen, die Eigentum völlig anderer Google-Konten sind, die jedoch für meinen Google Mail-Nutzer ([email protected]) freigegeben (schreibgeschützt) sind. .
quelle
Ich habe es geschafft, dies zu beheben, indem ich dafür gesorgt habe, dass die
client = Google :: APIClient.new (: application_name => 'X' ,: application_version => '1')
Die Anwendungsnamenvariable 'X oben war der ACCOUNT-Name im GA-Dashboard, nicht der PROPERTY-Name, der in meinem Fall die tatsächliche URL der Site war, auf die ich zugreifen möchte.
Verwirrend, aber dankbar behoben (ohne Dank an Google!)
quelle
Das Problem tritt auf, da wir kein "Unter" -Argument angeben. Sofern wir dies nicht angeben, erfolgt der Anruf im Namen dieser E-Mail mit dem langen Dienstkonto.
Geben Sie einfach ein Unterargument mit einer E-Mail an, auf die Sie bereits im Bericht Zugriff haben, und die Dinge sollten gut funktionieren!
quelle
Ich habe den gleichen Fehler erhalten, da ich mich nicht bei Google Analytics angemeldet habe. Also hatte ich es gelöst, indem ich mich im Analytics-Konto angemeldet hatte.
quelle
Anstatt ein Dienstkonto zu verwenden, können Sie die Notwendigkeit umgehen, neue Benutzerberechtigungen hinzuzufügen (gemäß den häufigsten Antworten in diesem Thread)
OAuth client ID
Anmeldeinformationen .Wechseln Sie zum Dashboard mit den API-Anmeldeinformationen und klicken Sie auf "Anmeldeinformationen erstellen" -> "OAuth-Client-ID". Anschließend sollten Sie eine Client-ID und ein Client-Geheimnis erhalten, die Sie zur Authentifizierung der API benötigen.
Jetzt können Sie die
OAuth2WebServerFlow
Authentifizierung pro Verwendung verwenden. Hier ist ein Python3-Beispiel:quelle