Cas d’usage
La veille e-réputation permet de :- Suivre les notes et avis clients
- Analyser le sentiment par source
- Détecter les problèmes qualité
Implémentation
1. Récupérer les avis d’un produit
Utilisez l’endpoint/v1/products/{id}/reviews :
import requests
API_KEY = "oc_YOUR_API_KEY"
PRODUCT_ID = 12345
response = requests.get(
f"https://api.officiscan.com/v1/products/{PRODUCT_ID}/reviews",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
print(f"Note moyenne: {data.get('rating', 'N/A')}")
print(f"Total avis: {data['total']}")
for review in data["data"][:5]:
print(f"⭐ {review['rating']}/5 - {review['title']}")
print(f" {review['content'][:100]}...")
2. Analyse de sentiment
def analyze_reviews(product_id):
"""Analyse les avis d'un produit"""
response = requests.get(
f"https://api.officiscan.com/v1/products/{product_id}/reviews",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
analysis = {
"total": data["total"],
"avg_rating": data.get("rating"),
"distribution": {1: 0, 2: 0, 3: 0, 4: 0, 5: 0},
"positive": 0, # 4-5 stars
"neutral": 0, # 3 stars
"negative": 0 # 1-2 stars
}
for review in data["data"]:
rating = review["rating"]
analysis["distribution"][rating] = analysis["distribution"].get(rating, 0) + 1
if rating >= 4:
analysis["positive"] += 1
elif rating == 3:
analysis["neutral"] += 1
else:
analysis["negative"] += 1
return analysis
# Exemple
analysis = analyze_reviews(12345)
print(f"Positifs: {analysis['positive']}")
print(f"Neutres: {analysis['neutral']}")
print(f"Négatifs: {analysis['negative']}")
3. Alertes avis négatifs
def negative_review_alerts(product_ids, min_rating=2):
"""Alerte sur les avis négatifs récents"""
from datetime import datetime, timedelta
alerts = []
week_ago = (datetime.now() - timedelta(days=7)).isoformat()
for product_id in product_ids:
response = requests.get(
f"https://api.officiscan.com/v1/products/{product_id}/reviews",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
for review in data["data"]:
if review["rating"] <= min_rating:
if review["published_at"] >= week_ago:
alerts.append({
"product_id": product_id,
"rating": review["rating"],
"title": review["title"],
"content": review["content"][:200],
"date": review["published_at"]
})
return alerts
# Vérifier les alertes
alerts = negative_review_alerts([12345, 12346])
for a in alerts:
print(f"⚠️ {a['rating']}/5 - {a['title']}")
4. Comparaison e-réputation
def compare_reputation(product_ids):
"""Compare la réputation de plusieurs produits"""
import pandas as pd
results = []
for product_id in product_ids:
response = requests.get(
f"https://api.officiscan.com/v1/products/{product_id}/reviews",
headers={"Authorization": f"Bearer {API_KEY}"}
)
data = response.json()
positive = sum(1 for r in data["data"] if r["rating"] >= 4)
results.append({
"product_id": product_id,
"avg_rating": data.get("rating"),
"total_reviews": data["total"],
"positive_rate": f"{(positive / data['total'] * 100):.0f}%" if data["total"] > 0 else "N/A"
})
return pd.DataFrame(results)
# Comparer vos produits
comparison = compare_reputation([12345, 12346])
print(comparison)
Endpoints utilisés
GET /v1/products/{id}/reviews
Avis d’un produit
GET /v1/products/{id}
Détail produit avec rating