Aktive Nutzer gewinnen – über die API

Ich möchte die Anzahl der aktiven Benutzer über die API erhalten, genau wie beim Export. Über welche API kann ich diese abrufen?

Aktiv in welchem Sinne: täglich, wöchentlich, monatlich oder jährlich?

1 „Gefällt mir“

Um alle aktiven Benutzer zu erhalten, also die Gesamtzahl der Benutzer

1 „Gefällt mir“

Sie meinen also alle Online-Benutzer, d. h. diejenigen, die sich zu diesem Zeitpunkt gerade im Forum befinden?

1 „Gefällt mir“

was ist mit /admin/users/list/active.json?

vielleicht hilft dieses Dokument?

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

siehe auch

2 „Gefällt mir“

Nein, es ist die Gesamtzahl der aktiven Nutzer der Website, d. h. wie viele Personen die Website derzeit hat.

Sie können die Daten von {site url}/about.json abrufen und den Wert des Schlüssels users_count erhalten. Zum Beispiel auf 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, // Dieser Wert hier!
      "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": "Erfahren Sie mehr über Discourse, die Open-Source-Forum-Software der nächsten Generation, und diskutieren Sie darüber.",
    "extended_site_description": "<p>Ein Ort für die Discourse-Community, um sich zu treffen, Fragen zu stellen, sich gegenseitig zu unterstützen und sehr geschätztes Feedback zu geben.</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": []
  }
}

die Zahl users_count ist 61086.

Ja, ich verwende derzeit die API hier, um Benutzerdaten zu erhalten, aber sie stimmt nicht mit der Gesamtzahl von users_count auf Meta: {site url}/about.json überein. Ich möchte die Ursache analysieren.

Dies ist die Gesamtzahl der Benutzer, aber ich möchte die Benutzerliste erhalten, da die Anzahl der Benutzer, die ich über Discourse API Docs erhalte, nicht mit der users_count von {site url}/about.json übereinstimmt, es fehlen viele Benutzer.

Hallo, was ist mit diesem API-Aufruf (Discourse Docs)? Zum Beispiel ruft https://meta.discourse.org/directory_items.json?period=all&order=likes_received alle Benutzer ab, sortiert nach Likes. Sie können &page=2, &page=3 am Ende hinzufügen, um weitere Seiten mit Benutzern zu erhalten.

1 „Gefällt mir“

Haben Sie den page-Parameter verwendet, um alle Seiten abzurufen?

1 „Gefällt mir“

Ja, die seitenweise Abfrage wird fortgesetzt, bis keine Daten mehr zurückgegeben werden. Wenn es beispielsweise insgesamt 34.000+ gibt, werden nur 30.000+ abgerufen. Ich kann nicht unterscheiden, welche Benutzer über die API-Schnittstelle nicht abgerufen werden können.

Was wäre, wenn Sie jede Seite durchlaufen würden (vielleicht mit etwas wie Python), um die Seitenzahl zu erhöhen und die Daten abzurufen, bis keine Daten mehr abzurufen sind? Würde das funktionieren?

1 „Gefällt mir“

Ich denke, die Verwendung einer Data Explorer-Abfrage wäre der einfachste Weg, die gesamte Benutzerliste zu erhalten.

1 „Gefällt mir“

Ja, es wurde bereits bearbeitet. Die vorherigen Unterschiede ergaben sich, weil bei der Abfrage von Daten über die API Standardbedingungen verwendet wurden, die nur aktive Benutzer abrufen.