Avis
Récupérez des avis, répondez-y et analysez-les avec le SDK listingsapi-js.
Les avis (appelés « interactions » dans l’API) sont des notes en étoiles et des commentaires libres recueillis sur Google, Facebook et Yelp. Toutes les méthodes relatives aux avis sont disponibles sur l’instance du client ListingsAPI. Les opérations d’écriture qui échouent côté serveur lèvent une exception ValidationError ; vous n’avez donc jamais besoin de vérifier les indicateurs success dans les valeurs de retour.
fetchInteractions
Récupérez les avis d’un établissement avec des filtres facultatifs et une pagination par curseur. Les identifiants numériques des établissements sont encodés automatiquement.
// Single pageconst result = await client.fetchInteractions(16808, {first: 25,startDate: '2026-01-01',endDate: '2026-06-30',ratingFilters: [1, 2],}); if (!Array.isArray(result)) {console.log(result.interactions); // Interaction[]console.log(result.totalCount); // number | undefinedconsole.log(result.pageInfo); // { hasNextPage, hasPreviousPage, startCursor, endCursor }} // All reviews at once, returns a flat Interaction[]const all = await client.fetchInteractions(16808, {fetchAll: true,startDate: '2026-01-01',});Options
Valeurs de retour
Sans fetchAll, un objet InteractionResponse : success, interactions (Interaction[]), pageInfo (hasNextPage, hasPreviousPage, startCursor, endCursor), totalCount lorsque l’API en fournit un, et raw (les données brutes non analysées). Avec fetchAll: true, un Interaction[] à un seul niveau. Chaque Interaction contient id, content, rating, siteName, siteUrl, reviewerName, publishedAt, category et responses.
fetchReviewDetails
Récupérez des informations détaillées sur des avis précis à partir de leur identifiant d’interaction. Si le tableau d’entrée est vide, le traitement s’arrête immédiatement et renvoie un objet vide sans appel réseau.
const details = await client.fetchReviewDetails(['interaction-uuid-1','interaction-uuid-2',]);respondToReview
Publiez une réponse à un avis. La transmission à l’annuaire source est asynchrone.
await client.respondToReview('interaction-uuid','Thank you for the feedback! We hope to see you again soon.',);editReviewResponse
Modifiez une réponse existante.
await client.editReviewResponse('review-uuid','response-uuid','Updated response text.',);archiveReviewResponse
Archivez (masquez) une réponse.
await client.archiveReviewResponse('response-uuid');Analyse des avis
Les trois méthodes d’analyse acceptent un identifiant d’établissement ainsi qu’une plage { startDate, endDate } facultative (YYYY-MM-DD) et renvoient un objet ReviewAnalytics dont la structure varie selon le point de terminaison.
fetchReviewAnalyticsOverview
Statistiques globales sur une période : agrégats des notes et du volume d’avis pour l’établissement.
const overview = await client.fetchReviewAnalyticsOverview(16808, {startDate: '2026-01-01',endDate: '2026-06-30',});console.log(overview);fetchReviewAnalyticsTimeline
Évolution du nombre d’avis et des notes, adaptée à la création de graphiques.
const timeline = await client.fetchReviewAnalyticsTimeline(16808, {startDate: '2026-01-01',endDate: '2026-06-30',});fetchReviewAnalyticsSitesStats
Répartition des avis par site source (Google, Facebook, Yelp).
const siteStats = await client.fetchReviewAnalyticsSitesStats(16808, {startDate: '2026-01-01',endDate: '2026-06-30',});fetchReviewPhrases
Analyse des expressions et des sentiments pour un ou plusieurs établissements sur une période. Accepte un seul objet d’options ; locationIds est obligatoire et une liste vide renvoie [] sans appel réseau.
const phrases = await client.fetchReviewPhrases({locationIds: ['TG9jYXRpb246MTY4MDg=', 'TG9jYXRpb246MTY4MDk='],startDate: '2026-01-01',endDate: '2026-06-30',siteUrls: ['maps.google.com'],}); for (const p of phrases) {console.log(p.phrase, p.count, p.sentiment);}Options
Paramètres des avis
fetchReviewSettings
Récupérez les paramètres des sources d’avis pour un établissement.
const settings = await client.fetchReviewSettings(16808);console.log(settings);editReviewSettings
Définissez ou mettez à jour les URL des sources d’avis suivies pour un établissement. Chaque entrée est un ReviewSiteUrl contenant un name et un url.
await client.editReviewSettings(16808, [{ name: 'Google', url: 'https://www.google.com/maps/place/acme-dental' },{ name: 'Yelp', url: 'https://www.yelp.com/biz/acme-dental-new-york' },]);fetchReviewSiteConfig
Récupérez la liste des sources d’avis admissibles à l’échelle du compte. N’accepte aucun argument et renvoie un ReviewSiteConfig[].
const config = await client.fetchReviewSiteConfig();Ressources connexes
- Établissements : rechercher les identifiants des établissements
- Analyses : statistiques des profils Google, Bing et Facebook
- Cas d’utilisation : exemples de suivi des avis et de réponse en masse