fix: Google-Rezensionen auf "Places API (New)" umgestellt
Symptom: dauerhaft REQUEST_DENIED mit "The provided API key is invalid",
obwohl der Schluessel keinerlei Einschraenkung traegt.
Die Meldung fuehrt in die Irre. Der Code rief den alten Endpunkt
maps.googleapis.com/maps/api/place/details/json auf, und Google laesst
die dazugehoerige alte "Places API" in seit Maerz 2025 angelegten
Cloud-Projekten gar nicht mehr aktivieren. Der Fehler betrifft also nicht
den Schluessel, sondern die API — wer der Meldung folgt, sucht
zwangslaeufig an der falschen Stelle. Das README hatte diesen Fall als
"Legacy-Hinweis" bereits vorhergesagt.
Jetzt places.googleapis.com/v1 mit X-Goog-Api-Key im Header (statt des
Schluessels in der Adresszeile, wo er in fremden Zugriffsprotokollen
landet) und einer engen X-Goog-FieldMask — die API rechnet nach
angeforderten Feldern ab.
Die Fehlermeldung im Log nennt jetzt die drei Dinge, an denen es
tatsaechlich liegen kann: API nicht aktiviert, keine Abrechnung am
Projekt, oder ein OAuth-Client statt eines API-Schluessels hinterlegt.
Zwei Verhaltensaenderungen, beide unvermeidbar:
- Die neue API kennt kein reviews_sort=newest; sie liefert bis zu fuenf
Rezensionen in Googles eigener Reihenfolge.
- Rezensionen ohne Namen werden uebersprungen (zuvor nur die ohne
Text): ohne Namen fehlt die von den Nutzungsbedingungen verlangte
Zuordnung zur Quelle.
README und .env.example nennen jetzt alle vier noetigen Schritte und
weisen ausdruecklich darauf hin, dass eine Referrer-Beschraenkung den
Abruf blockiert — er laeuft serverseitig.
Dazu, mit Blick auf mehrere Instanzen: DATABASE_POOL_SIZE ist jetzt
einstellbar (Vorgabe 20) und in der ConfigMap dokumentiert. Der Wert gilt
je Instanz und multipliziert sich mit "replicas" — drei Instanzen belegen
60 der voreingestellt 100 PostgreSQL-Verbindungen.
tsc: 0 Fehler. vitest: 336/336 gruen. eslint: 0 Warnungen.
Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
This commit is contained in:
1 parent
9b10a9f0c5
commit
6639da130e
5 files changed
+160
-68
No files matched your search
+5
-1
@@ -62,7 +62,11 @@ SITE_ADDRESS=
|
||||
|
||||
# Google Rezensionen (optional). Ohne diese beiden Werte zeigt die Startseite
|
||||
# automatisch die statischen Beispiel-Stimmen als Fallback.
|
||||
# API-Key: Google-Cloud-Projekt mit aktivierter "Places API".
|
||||
# API-Key: Google-Cloud-Projekt mit aktivierter "Places API (New)" — NICHT
|
||||
# die gleichnamige alte API, die in neuen Projekten nicht mehr aktivierbar
|
||||
# ist. Ausserdem noetig: Abrechnung am Projekt aktiv, und der Wert muss ein
|
||||
# API-Schluessel sein (ein OAuth-Client funktioniert nicht). Keine
|
||||
# Referrer-Beschraenkung setzen — der Abruf erfolgt serverseitig.
|
||||
# Place-ID: https://developers.google.com/maps/documentation/places/web-service/place-id
|
||||
GOOGLE_PLACES_API_KEY=
|
||||
GOOGLE_PLACE_ID=
|
||||
|
||||
Reference in new issue
Block a user