GOOGLE ADS

Montag, 11. April 2022

Google Search Console API-Anfrage mit PHP

Ich möchte Abfragedaten von der Google Search Console API über ein PHP-Skript anfordern, aber ich bekomme es nicht zum Laufen. Ich habe mir die Beispiele angesehen, aber es gibt nicht zu viele, insbesondere für PHP. Ich habe ein Projekt in der Google Cloud Platform erstellt und alles wie beschrieben hinzugefügt. Ich habe kein Problem damit, Google Analytics-Daten über ein PHP-Skript abzurufen, aber die Search Console funktioniert nicht. Hier ist der Code, wie ich es versucht habe:

// Load the Google API PHP Client Library.
require_once __DIR__. '/google-client-library/vendor/autoload.php';
use Google\Client;
use Google\Service\SearchConsole;
use Google\Service\SearchConsole\SearchAnalyticsQueryRequest;
$site = "https://www.example.com";
$KEY_FILE_LOCATION = __DIR__. '/google-api-keys/client_secret_xxxxx.json';
putenv("GOOGLE_APPLICATION_CREDENTIALS=$KEY_FILE_LOCATION");
$client = new Google\Client();
// I don't think this is really necessary as the environment variable is already set.
$client->setAuthConfig($KEY_FILE_LOCATION);
$client->setApplicationName("Search Console Request");
$client->addScope("https://www.googleapis.com/auth/webmasters.readonly");
$searchConsole = new SearchConsole([$client, $site]);
$queryRequest = new SearchAnalyticsQueryRequest();
$queryRequest->setStartDate("2022-04-01");
$queryRequest->setEndDate("2022-04-04");
$queryRequest->setDimensions(["QUERY","PAGE"]);
$response = $searchConsole->searchanalytics->query($site, $queryRequest);
echo $response;

Und das ist die PHP-Log-Nachricht:

[09-Apr-2022 07:48:40 UTC] PHP Fatal error: Uncaught Google\Service\Exception: {
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Login Required.",
"domain": "global",
"reason": "required",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED",
"details": [
{
"@type": "type.googleapis.com/google.rpc.ErrorInfo",
"reason": "CREDENTIALS_MISSING",
"domain": "googleapis.com",
"metadata": {
"service": "searchconsole.googleapis.com",
"method": "google.searchconsole.v1.searchanalytics.SearchAnalyticsService.Query"
}
}
]
}
}

Was mache ich falsch? Wie erhalte ich die richtigen Anmeldeinformationen ohne Benutzerinteraktion. Dies sollte ein Skript sein, das regelmäßig ausgeführt wird und die Daten zur späteren Verwendung erhält. THX beste Grüße Michael


Lösung des Problems

Sie müssen die folgende Zeile aktualisieren

$KEY_FILE_LOCATION = __DIR__. '/google-api-keys/client_secret_xxxxx.json';

Mit einem korrekten Pfad Ihrer Google Cloud-Anmeldeinformationen auf Ihrem Computer können Sie diese Anmeldedaten von Ihrem Google Cloud-Konto im Abschnitt "Anmeldeinformationen" abrufen. Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -API

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...