Je veux récupérer les données d’un utilisateur spécifique via l’API. En gros, je veux savoir combien de réponses l’utilisateur a données depuis qu’il a rejoint le forum. J’ai utilisé le code suivant (en gros, j’ai récupéré toutes les user_actions où action_type=5 et j’ai ensuite imprimé le nombre de ces enregistrements). Le résultat final ne correspondait pas à ce que je vois dans l’interface web. Quelqu’un peut-il expliquer pourquoi cela pourrait se produire ?
import requests, time
defaultHost = #your_default_host
# En-têtes pour l'authentification
headers = {
'Api-Key': #YOUR_API_KEY,
'Api-Username':#YOUR_API_USERNAME
}
# incrémente l'offset de 30 à chaque fois. La boucle doit s'arrêter lorsque le nombre d'éléments dans la réponse est inférieur à 30
offset = 0
data_dict ={"user_actions":[]}
username = #username_for_which_we_want_to_fetch_the_data
# filter=5 # Pour le « user_replied_to_a_topic »
while True:
time.sleep(0.2)
endpoint = f'https://{defaultHost}/user_actions.json?username={username}&offset={offset}&filter=5'
# Faire la requête
response = requests.get(endpoint,
headers=headers)
# Vérifier la réponse
if response.status_code == 200:
data = response.json()
num_elements = len(data["user_actions"])
data_dict["user_actions"].extend(data["user_actions"])
offset+=30
if num_elements<30:
break
else:
print(f'Erreur : {response.status_code}')
break
print(len(data_dict["user_actions"]))