Obtenir des utilisateurs actifs - via l'API

Je voudrais obtenir le nombre d’utilisateurs actifs via l’API, c’est exactement le même que celui exporté, quelle API dois-je utiliser pour l’obtenir ?

Actif dans quel sens : quotidiennement, hebdomadairement, mensuellement ou annuellement ?

1 « J'aime »

Pour obtenir, tous les utilisateurs actifs actuels, c’est-à-dire le nombre total d’utilisateurs

1 « J'aime »

Vous voulez donc dire tous les utilisateurs en ligne, c’est-à-dire ceux qui sont actuellement sur le forum à ce moment-là ?

1 « J'aime »

qu’en est-il de /admin/users/list/active.json ?

peut-être que cette documentation aidera ?

https://docs.discourse.org/#tag/Users/operation/adminListUsers

voir aussi

2 « J'aime »

Non, il s’agit du nombre total d’utilisateurs valides sur le site, c’est-à-dire le nombre total de personnes sur le site actuellement.

Vous pouvez extraire les données de {site url}/about.json, et obtenir la valeur de la clé users_count. Par exemple sur Meta :

{
  "about": {
    "stats": {
      "topics_last_day": 16,
      "topics_7_days": 99,
      "topics_30_days": 553,
      "topics_count": 60801,
      "posts_last_day": 549,
      "posts_7_days": 3352,
      "posts_30_days": 19273,
      "posts_count": 1722045,
      "users_last_day": 23,
      "users_7_days": 132,
      "users_30_days": 713,
      "users_count": 61086, // Cette valeur ici !
      "active_users_last_day": 535,
      "active_users_7_days": 1219,
      "active_users_30_days": 2518,
      "likes_last_day": 169,
      "likes_7_days": 1547,
      "likes_30_days": 10833,
      "likes_count": 1641538,
      "participating_users_last_day": 119,
      "participating_users_7_days": 373,
      "participating_users_30_days": 912,
      "visitors_last_day": 2161,
      "visitors_7_days": 4468,
      "visitors_30_days": 8669,
      "eu_visitors_last_day": 653,
      "eu_visitors_7_days": 1206,
      "eu_visitors_30_days": 2022,
      "chat_messages_last_day": 72,
      "chat_messages_7_days": 707,
      "chat_messages_30_days": 3015,
      "chat_messages_previous_30_days": 3621,
      "chat_messages_count": 99670,
      "chat_users_last_day": 8,
      "chat_users_7_days": 27,
      "chat_users_30_days": 67,
      "chat_users_previous_30_days": 87,
      "chat_users_count": 925,
      "chat_channels_last_day": 3,
      "chat_channels_7_days": 8,
      "chat_channels_30_days": 39,
      "chat_channels_previous_30_days": 36,
      "chat_channels_count": 3117
    },
    "description": "Apprenez et discutez de Discourse, le logiciel de forum open-source de nouvelle génération.",
    "extended_site_description": "<p>Un lieu pour la communauté Discourse pour se rencontrer, poser des questions, s'entraider et partager des commentaires très appréciés.</p>",
    "banner_image": "https://d11a6trkgmumsb.cloudfront.net/original/4X/8/3/5/835377a3ea23f75e6c6c08ed3d7d606a0f2c3e72.jpeg",
    "site_creation_date": "2016-02-17T07:50:40.228Z",
    "title": "Discourse Meta",
    "locale": "en",
    "version": "3.6.0.beta1-dev",
    "https": true,
    "can_see_about_stats": true,
    "contact_url": "",
    "contact_email": "team@discourse.org",
    "moderator_ids": [
      127856,
      112395,
      8307,
      8571,
      140271
    ],
    "admin_ids": [],
    "category_moderators": []
  }
}

le nombre users_count est 61086.

Oui, j’utilise actuellement les données utilisateur obtenues via l’API ici, mais elles ne correspondent pas au nombre total de users_count sur Meta : {site url}/about.json. Je veux analyser la raison.

Ceci permet d’obtenir le nombre total d’utilisateurs, mais je souhaite obtenir la liste des utilisateurs. En effet, le nombre d’utilisateurs que j’obtiens via Discourse API Docs n’est pas le même que le users_count de {site url}/about.json, il manque beaucoup d’utilisateurs.

Salut, qu’en est-il de cet appel API (Discourse Docs) ? Par exemple, https://meta.discourse.org/directory_items.json?period=all&order=likes_received récupère tous les utilisateurs classés par likes. Vous pouvez ajouter &page=2, &page=3 à la fin pour d’autres pages d’utilisateurs.

1 « J'aime »

Avez-vous utilisé le paramètre page pour obtenir toutes les pages ?

1 « J'aime »

Oui, l’obtention par pagination se poursuit jusqu’à ce qu’aucune donnée ne soit retournée. Par exemple, il y a plus de 34 000 éléments au total, mais seulement plus de 30 000 sont obtenus. Je ne peux pas déterminer quels utilisateurs, en fonction de leur statut, ne peuvent pas être obtenus via l’interface API.

Alors, et si vous parcouriez chaque page (peut-être en utilisant quelque chose comme Python) pour incrémenter le numéro de page et récupérer les données jusqu’à ce qu’il n’y ait plus de données à récupérer ? Est-ce que cela fonctionnerait ?

1 « J'aime »

Je pense qu’utiliser une requête d’explorateur de données serait le moyen le plus simple d’obtenir la liste complète des utilisateurs.

1 « J'aime »

Oui, c’est déjà traité. La différence précédente était due à l’utilisation de conditions par défaut lors de l’obtention des données via l’API, ce qui ne permettait de récupérer que les utilisateurs actifs.