想得到活跃的用户——通过api

我想通过API得到活跃用户数,就是和导出来的是一模一样的,我该通过哪个API来获取呢

以何种方式活跃:每日、每周、每月还是每年?

1 个赞

想要获得,目前所有活跃的用户,即是用户总量

1 个赞

所以你的意思是所有在线用户,也就是说,那些在那时当前在论坛上的用户?

1 个赞

/admin/users/list/active.json怎么样?

这份文档也许有帮助?

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

另请参阅

2 个赞

不是,是网站所有有效用户数,就是网站现在一共有多少个人

您可以从 {site url}/about.json 拉取数据,并获取 users_count 键的值。例如,在 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, // 这里的值!
      "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": "了解和讨论 Discourse,下一代开源论坛软件。",
    "extended_site_description": "<p>一个供 Discourse 社区见面、提问、互相提供支持并分享备受赞赏的反馈的地方。</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": []
  }
}

users_count 数字是 61086

是的 目前我就使用这里的API得到的用户数据 但是和 在 Meta 上:{site url}/about.json users_count的总数量对不上 我想分析原因

这个是获取用户的总数 但是我想得到的是用户列表 因为我通过Discourse API Docs {site url}/about.json users_count对不少 ,会少很多用户

你好,关于这个(Discourse Docs)API调用呢?例如,https://meta.discourse.org/directory_items.json?period=all&order=likes_received 可以获取所有按点赞数排序的用户。你可以在后面添加&page=2&page=3来获取更多页的用户。

1 个赞

您是否使用了 page 参数来获取所有页面?

1 个赞

是的 分页获取的直到没有数据返回,比如总数有34000+,但是得到的只有30000+,我分辨不清楚是有什么状态的用户通过API接口无法获取

那么,如果你通过循环遍历每一页(也许使用类似 Python 的方法)来递增页码并获取数据,直到没有更多数据可获取,会怎么样?这样可行吗?

1 个赞

我认为使用数据浏览器查询将是获取整个用户列表的最简单方法。

1 个赞

是的 已经处理了,之前的差异是因为通过API拿数据时候,使用了默认条件,只会获取到活跃的用户