https://github.com/math-GH/be_piwikc....php#L133-L136
Bisschen Weiterbildung :)PHP-Code:
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'field1=value1&field2=value2&field3=value3');
Druckbare Version
https://github.com/math-GH/be_piwikc....php#L133-L136
Bisschen Weiterbildung :)PHP-Code:
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'field1=value1&field2=value2&field3=value3');
Das alleine dürfte nicht reichen.
Matomo erwartet die Abfrageparameter weiterhin als GET-Parameter, nur das Token muss zusätzlich als POST Request übermittelt werden.
Das wäre dann also ein Post-Request auf die URL piwikchartsURL + 'index.php?module=API&method=API.getMatomoVersion& format=xml' mit dem Auth-Token im Request-Header. Und das gilt auch für jede andere Anfrage.
Eventuell würde es helfen, dass du alles aufschreibst, wie Matomo es erwartet, wenn du es selbst nicht als PR bereitstellen willst.
Ich kann dir nur sagen, wie man es lösen könnte.
Ich nutze wie vorher erwähnt kein Matomo, du scheinst da deutlich mehr Ahnung zu haben.
Eventuell hilft dir folgendes weiter: https://symfony.com/doc/6.4/http_client.html
Es geht weniger um wollen als um können.
Auf der Matomo Seite steht:
https://developer.matomo.org/guides/...ation-in-depthZitat:
When a token_auth parameter is set by us, then we usually POST the token_auth. This is for security reasons so the token_auth won't appear in server logs. Otherwise a sysadmin could see the token in the logs and do all sort of actions on behalf of another user.
Das bedeutet: Überall wo bei den Datenabrufen jetzt noch ein token_auth= in der URL vorkommt, muss dieses weg und statt eines klassischen GET-Requests ein POST-Request gesendet werden.
Wenn ich das richtig sehe, dann erfolgen die Datenabfragen bisher mit der eigenen Readfile Funktion, der einfach die vorher von buildURL() zusammengebaute URL übergeben wird.
Wenn ich die Tage Zeit habe versuche ich mal, ob dein Vorschlag, den ganzen Request auf POST umzustellen funktioniert.
Irgendwo muss man anfangen, so habe ich auch gelernt.
Da sich dies auf be_piwikcharts bezieht, kannst du diese Fragen sicherlich auch weiterhin hier stellen.
Und bzgl. der Contao 5 Kompatibilität:
PHP-Code:
if (TL_MODE != 'BE') {
...
}
// kann man umschreiben in
use Contao\System;
$request = System::getContainer()->get('request_stack')->getCurrentRequest();
if ($request && System::getContainer()->get('contao.routing.scope_matcher')->isFrontendRequest($request)) {
...
}
// und TL_ROOT
$rootDir = System::getContainer()->getParameter('kernel.project_dir');
// Zum Thema Manager-Bundle: https://github.com/contao/skeleton-bundle <-- etwas veraltet aber immer noch okay zum Lernen
So, prinzipiell scheint das mit POST zu funktionieren.
Die reinen Zahlen bekomme ich zurückgeliefert. Aber die Daten für die Grafiken will Matomo nicht rausrücken.
Da kommt von Matomo nur ein "Sie haben keinen Zugriff auf diese Ressource, weil sie 'view' Zugriff für die Webseite id = 1 benötigt." zurück.
Das liegt aber daran, dass die Grafiken nicht von Contao erzeugt werden, sondern fertig von Matomo abgerufen werden. Und darum kümmert sich anscheinend die Templateengine von Contao.
Und ich muss mir noch was überlegen, dass das Token auch nur mitgeschickt wird, wenn es benötigt wird. Aktuell schicke ich es hartcodiert bei jedem Request (egal wohin) mit.
Ich habe da mal was gebastelt.... bei mir funktioniert es soweit.
Bis auf das Problem mit den Charts. Da habe ich keine Lösung für.
https://github.com/math-GH/be_piwikcharts/pull/10