Ich authentifizierte eine einfache erhalten Anfrage an die Core Reporting API mit einem Dienstkonto. Aber die Antwort ist immer:Google Server-zu-Server-authentifizierte Anfrage zurückgibt verboten 403
{"error":{"errors": [{"message":"Forbidden"}],"code":403,"message":"Forbidden"}}
Wenn ich die gleiche api Anfrage über „Client-ID für Web-Anwendungen “ (OAuth 2.0 Spielplatz) authentifizieren bekomme ich die api Antwort ohne Probleme. Das Problem liegt also nicht in der API-Abfrage.
Das ist, was ich tat:
i mit einem Konto wich bei der Google API-Konsole hat Zugriff auf die Analytics-Konto
dort habe ich ein Konto neuen Service innerhalb eines angemeldet Projekt weicht hat Zugriff auf die analytics api
mit dem neuesten google-api-php-Client i die Anforderung authentifizierte zum analyti cs api mit diesem Dienstkonto. Die Authentifizierung scheint zu funktionieren, da der Anforderungsheader
authorization: Bearer {access_token}
enthält. Aber ich bekomme immer ein 403.
Hier ist ein kurzer Code-Schnipsel von dem, was iam Tun:
$client = new apiClient();
$client->setAssertionCredentials(new apiAssertionCredentials(
'{my_service_account_email}',
array('https://www.googleapis.com/auth/analytics.readonly'),
'{my_service_account_certificate}'
));
$request = $client->getIo()->authenticatedRequest(new apiHttpRequest('https://www.googleapis.com/analytics/v3/data/ga?{my_query}'));
was falsch iam tun?