Gestion des clients

Création, script vanilla, et gestion des clients existants.

Créer un client

Script JS

Clients enregistrés

Nom Actif Place ID Actions

Documentation

Le script expose la fonction ReviewsAPI.fetch(options).

await ReviewsAPI.fetch({
  placeId: "ChIJ...",
  apiKey: "rw_...",
  clientName: "Nom du client"
});

Paramètres : placeId (obligatoire), apiKey (obligatoire), clientName (optionnel).

Exemple recommandé :

try {
  const data = await ReviewsAPI.fetch({
    placeId: "ChIJ...",
    apiKey: "rw_...",
    clientName: "Mon Client"
  });

  const reviews = Array.isArray(data.reviews) ? data.reviews : [];
  reviews.forEach((review) => {
    const author = review.authorName || "Anonyme";
    const note = typeof review.rating === "number" ? review.rating : 0;
    const text = review.text || "Aucun commentaire";
    console.log(author, note, text);
  });
} catch (err) {
  console.error("Erreur API:", err.message);
}

JSON retourné :

{
  "name": "Nom de l'établissement",
  "rating": 4.6,
  "totalRatings": 128,
  "formattedAddress": "Adresse",
  "reviews": [
    {
      "authorName": "Prénom N.",
      "authorPhoto": "https://...",
      "rating": 5,
      "text": "Avis...",
      "relativeTime": "il y a 2 semaines",
      "publishedAt": "2026-03-15T10:22:00.000Z",
      "language": "fr"
    }
  ]
}

Note : reviews contient au maximum 5 avis (limite Google Places API).

Erreurs fréquentes :

400  Paramètres invalides (placeId manquant / invalide)
401  Clé API manquante (x-api-key)
403  Clé API inconnue ou client désactivé
504  Timeout amont (Google Places / PocketBase)

Bonnes pratiques :

  • Tester systématiquement res.ok et afficher un fallback UI.
  • Ne jamais supposer que text ou authorPhoto est toujours présent.
  • Prévoir un affichage vide si reviews.length === 0.
  • Mettre un timeout côté front (8 à 10 secondes) pour éviter les loaders bloqués.
  • Ne pas exposer de logique sensible côté client (seulement l’affichage).
  • Conserver apiKey et placeId dans une configuration claire par client.