Ottenere utenti attivi - tramite API

Vorrei ottenere il numero di utenti attivi tramite API, esattamente come quello che viene esportato, quale API dovrei usare per ottenerlo?

Attivo in che senso: giornalmente, settimanalmente, mensilmente o annualmente?

1 Mi Piace

Per ottenere, tutti gli utenti attivi attualmente, ovvero il numero totale di utenti

1 Mi Piace

Quindi intendi tutti gli utenti online, cioè quelli che sono attualmente sul forum in quel momento?

1 Mi Piace

E per quanto riguarda /admin/users/list/active.json?

Forse questa documentazione può aiutare?

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

Vedi anche

2 Mi Piace

No, è il numero totale di utenti attivi del sito web, ovvero quante persone ci sono attualmente sul sito.

Puoi estrarre i dati da {site url}/about.json e ottenere il valore della chiave users_count. Ad esempio su 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, // Questo valore qui!
      "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": "Scopri e discuti Discourse, il software per forum open-source di nuova generazione.",
    "extended_site_description": "<p>Un luogo dove la community di Discourse può incontrarsi, fare domande, supportarsi a vicenda e condividere feedback molto apprezzati.</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": []
  }
}

il numero users_count è 61086.

Sì, attualmente sto utilizzando i dati utente ottenuti dall’API qui, ma non corrispondono al numero totale di users_count su Meta: {site url}/about.json. Voglio analizzare le ragioni.

Questo è per ottenere il numero totale di utenti, ma voglio ottenere l’elenco degli utenti perché il numero di utenti ottenuto tramite Discourse API Docs non corrisponde a {site url}/about.json users_count, mancano molti utenti.

Ciao, che mi dici della chiamata API qui (Documentazione Discourse)? Ad esempio, https://meta.discourse.org/directory_items.json?period=all&order=likes_received ottiene tutti gli utenti ordinati per mi piace. Puoi aggiungere &page=2, &page=3 alla fine per altre pagine di utenti.

1 Mi Piace

Hai usato il parametro page per ottenere tutte le pagine?

1 Mi Piace

Sì, ottieni i dati per pagina finché non vengono restituiti dati, ad esempio il numero totale è 34000+, ma ottieni solo 30000+. Non riesco a distinguere quale tipo di utente non può essere ottenuto tramite l’interfaccia API.

Quindi, cosa succederebbe se si scorresse ogni pagina (magari usando qualcosa come Python) per incrementare il numero di pagina e recuperare i dati finché non ci sono più dati da recuperare? Funzionerebbe?

1 Mi Piace

Penso che l’utilizzo di una query di esplorazione dati sarebbe il modo più semplice per ottenere l’elenco completo degli utenti.

1 Mi Piace

Sì, è stato gestito. La discrepanza precedente era dovuta all’utilizzo di condizioni predefinite durante il recupero dei dati tramite API, che restituivano solo gli utenti attivi.