让所有尚未登录box.com的用户超过60天

时间:2014-07-07 06:39:58

标签: box-api box

我需要获取未执行任何活动或登录box.com帐户超过60天的用户的所有详细信息。有没有API或方法可以做到?

2 个答案:

答案 0 :(得分:0)

假设您是Box企业的管理员,可以使用API​​。但是,您必须分三步完成,并且需要一些客户端工作。

1。的 首先get a list of all enterprise users正如你现在所做的那样:

curl https://api.box.com/2.0/users
-H "Authorization: Bearer ACCESS_TOKEN"

根据企业中的用户数量,您需要使用增加的offset参数重复此调用以获取所有这些调用。有关更多详细信息,请参阅文档。

2。的 然后是过去60天内发生的get a list of all enterprise events

curl https://api.box.com/2.0/events?stream_type=admin_logs
                                   &created_after=2014-05-07T00:00:00-08:00 
-H "Authorization: Bearer ACCESS_TOKEN"

与用户列表一样,此事件列表可能会很长。随着stream_position的增加,您可能需要多次重复该呼叫。再次,文档更详细地解释了这一点。

3。的 此时,您有一个企业User对象列表和一个企业Event对象列表。 Event对象具有与执行操作的用户对应的属性created_by。一组独特的created_by.id值将为您提供过去N天内处于活动状态的每个用户的ID - 我们会将此列表active_user_ids称为。然后,您可以过滤用户对象中任何 not 出现在此列表中的ID。那些是你不活跃的用户。作为伪代码:

foreach user in users
  if active_user_ids does not contain user.id
     print "user.name has been not been active for at least 60 days"
  else
     print "user.name has been active within the last 60 days"

注意:根据企业中用户的数量和活动,“事件”列表将花费大量时间进行收集。请考虑使用event_type查询字符串参数将事件类型限制为您真正感兴趣的事件类型。

答案 1 :(得分:0)

在上述解决方案的第2步中 - 我相信有一种方法只能检索LOGIN事件。否则,事件列表可能非常大!