我该如何过滤从Slack返回的数据以找到活跃用户?

时间:2018-11-13 20:44:44

标签: javascript node.js json slack-api

问题

我该如何过滤从Slack返回的https://developer.wordpress.org/reference/functions/get_terms/,以找到有效 Slack用户(例如,我们为之付费的工作组中的用户)?

如果用户一段时间不活动,他们将不再花费我们(感谢您的忙碌!)。另外,我们可以从工作组中删除人员。

如何过滤users.list到要收取费用的用户列表?或user.list中的哪些元素将显示活跃的成员身份。

问题

我正在过滤用户删除的用户:

        const slackActiveAccounts = slackMembers
          .filter(member => member.deleted == false);

但是处于非活动状态并且不再计入我们帐单的用户将被发现为member.deleted: false。因此,非活动状态和已删除状态是不同的。

user.list json示例

user data

{
    "ok": true,
    "user": {
        "id": "W012A3CDE",
        "team_id": "T012AB3C4",
        "name": "spengler",
        "deleted": false,
        "color": "9f69e7",
        "real_name": "Egon Spengler",
        "tz": "America/Los_Angeles",
        "tz_label": "Pacific Daylight Time",
        "tz_offset": -25200,
        "profile": {
            "avatar_hash": "ge3b51ca72de",
            "status_text": "Print is dead",
            "status_emoji": ":books:",
            "status_expiration": 1502138999,
            "real_name": "Egon Spengler",
            "display_name": "spengler",
            "real_name_normalized": "Egon Spengler",
            "display_name_normalized": "spengler",
            "email": "spengler@ghostbusters.example.com",
            "image_24": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_32": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_48": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_72": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_192": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "image_512": "https://.../avatar/e3b51ca72dee4ef87916ae2b9240df50.jpg",
            "team": "T012AB3C4"
        },
        "is_admin": true,
        "is_owner": false,
        "is_primary_owner": false,
        "is_restricted": false,
        "is_ultra_restricted": false,
        "is_bot": false,
        "is_stranger": false,
        "updated": 1502138686,
        "is_app_user": false,
        "has_2fa": false,
        "locale": "en-US"
    }
}

1 个答案:

答案 0 :(得分:1)

我认为API方法team.billableInfo可能对您的情况更有帮助。

  

此方法列出团队中每个用户的计费信息。   当前,这仅取决于用户是否受制于   根据Slack的“公平计费”政策进行计费。

或者,如果您想获取当前“活动”用户的列表,我建议您检查API方法team.accessLogs。 (仅限付费套餐)

  

此方法用于为用户访问“   工作区。

     

每个访问日志条目代表一个用户从   特定用户,IP地址和用户代理组合。

方法users.list不包含有关用户活动的任何信息。 deleted表示该用户已被管理员手动停用,无法再登录。通常,管理员无法删除Slack中的用户,只能将其停用。