我需要获取未执行任何活动或登录box.com帐户超过60天的用户的所有详细信息。有没有API或方法可以做到?
答案 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事件。否则,事件列表可能非常大!