Obtener usuarios activos — a través de la API

Quiero obtener el número de usuarios activos a través de la API, que es exactamente lo mismo que se exporta, ¿a través de qué API debería obtenerlo?

¿Activo en qué sentido: diario, semanal, mensual o anual?

1 me gusta

Para obtener, todos los usuarios activos actualmente, es decir, el número total de usuarios.

1 me gusta

¿Entonces te refieres a todos los usuarios en línea, es decir, aquellos que están actualmente en el foro en ese momento?

1 me gusta

¿qué pasa con /admin/users/list/active.json?

¿quizás este documento te ayude?

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

también mira

2 Me gusta

No, es el número total de usuarios activos del sitio web, es decir, cuántas personas hay actualmente en el sitio web.

Puedes obtener los datos de {site url}/about.json y obtener el valor de la clave users_count. Por ejemplo, en 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, // ¡Este valor aquí!
      "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": "Aprende y discute sobre Discourse, el software de foro de código abierto de próxima generación.",
    "extended_site_description": "<p>Un lugar para que la comunidad de Discourse se reúna, haga preguntas, se brinde apoyo mutuo y comparta comentarios muy apreciados.</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": []
  }
}

el número users_count es 61086.

Sí, actualmente estoy utilizando los datos de usuario obtenidos a través de la API aquí, pero no coinciden con la cantidad total de users_count en Meta: {site url}/about.json. Quiero analizar la causa.

Este es para obtener el número total de usuarios, pero quiero obtener la lista de usuarios porque la cantidad de usuarios que obtuve a través de Discourse API Docs no coincide con users_count de {site url}/about.json, faltan muchos usuarios.

Hola, ¿qué hay de esta llamada a la API (Documentación de Discourse)? Por ejemplo, https://meta.discourse.org/directory_items.json?period=all&order=likes_received obtiene todos los usuarios ordenados por “me gusta”. Puedes añadir &page=2, &page=3 al final para más páginas de usuarios.

1 me gusta

¿Utilizaste el parámetro page para obtener todas las páginas?

1 me gusta

Sí, la obtención por páginas continúa hasta que no se devuelven datos. Por ejemplo, hay más de 34000 en total, pero solo se obtienen más de 30000. No puedo distinguir qué tipo de usuarios no se pueden obtener a través de la interfaz API.

¿Y si recorrieras cada página (quizás usando algo como Python) para incrementar el número de página y obtener los datos hasta que no queden más datos por obtener? ¿Funcionaría?

1 me gusta

Creo que usar una consulta del explorador de datos sería la forma más fácil de obtener la lista completa de usuarios.

1 me gusta

Sí, ya se ha procesado. La discrepancia anterior se debió a que, al obtener datos a través de la API, se utilizaron condiciones predeterminadas, lo que solo permitía obtener usuarios activos.