Obter usuários ativos - via API

Gostaria de obter o número de usuários ativos através da API, exatamente o mesmo que é exportado, qual API devo usar para obter isso?

Ativo em que sentido: diário, semanal, mensal ou anual?

1 curtida

Para obter, todos os usuários ativos atualmente, ou seja, o número total de usuários

1 curtida

Então você quer dizer todos os usuários online, ou seja, aqueles que estão atualmente no fórum naquele momento?

1 curtida

E quanto a /admin/users/list/active.json?

Talvez esta documentação ajude?

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

Veja também

2 curtidas

Não, é o número total de usuários válidos do site, ou seja, quantas pessoas existem no site agora.

Você pode obter os dados de {site url}/about.json e pegar o valor da chave users_count. Por exemplo, no 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 aqui!
      "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": "Saiba mais e discuta sobre o Discourse, o software de fórum open-source de próxima geração.",
    "extended_site_description": "<p>Um lugar para a comunidade Discourse se reunir, fazer perguntas, oferecer suporte uns aos outros e compartilhar feedback muito apreciado.</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": []
  }
}

o número users_count é 61086.

Sim, no momento estou usando os dados do usuário obtidos pela API aqui, mas eles não correspondem ao número total de users_count em Meta: {site url}/about.json. Gostaria de analisar o motivo.

Este é para obter o número total de usuários, mas o que eu quero é a lista de usuários, porque o número de usuários que obtenho através de Discourse API Docs não corresponde ao users_count em {site url}/about.json, faltam muitos usuários.

Olá, e quanto a esta chamada de API (Discourse Docs? Por exemplo, https://meta.discourse.org/directory_items.json?period=all&order=likes_received obtém todos os usuários ordenados por curtidas. Você pode adicionar &page=2, &page=3 no final para mais páginas de usuários.

1 curtida

Você usou o parâmetro page para obter todas as páginas?

1 curtida

Sim, a paginação é obtida até que nenhum dado seja retornado, por exemplo, há mais de 34.000 no total, mas apenas mais de 30.000 são obtidos. Não consigo distinguir quais usuários em quais status não podem ser obtidos pela interface da API.

E se você percorresse cada página (talvez usando algo como Python) para incrementar o número da página e buscar os dados até que não houvesse mais dados para buscar? Isso funcionaria?

1 curtida

Eu acho que usar uma consulta do explorador de dados seria a maneira mais fácil de obter toda a lista de usuários.

1 curtida

Sim, já foi resolvido. A diferença anterior ocorreu porque, ao obter dados via API, foram usadas condições padrão, que só retornam usuários ativos.