我需要获取超过 60 天未执行任何活动或登录 box.com 帐户的用户的所有详细信息。有什么 API 或方法可以做到吗?
2 回答
0
在上述解决方案的第 2 步中 - 我相信有一种方法可以只检索 LOGIN 事件。否则事件列表可能会非常大!
于 2015-01-14T19:02:27.333 回答
0
假设您是 Box 企业的管理员,这可以通过 API 实现。但是,您必须分三步完成,并且需要一些客户端工作。
1. 首先获取所有企业用户的列表,就像您现在所做的那样:
curl https://api.box.com/2.0/users
-H "Authorization: Bearer ACCESS_TOKEN"
根据您企业中的用户数量,您将需要使用增加的offset参数重复此调用以获取所有用户。有关更多详细信息,请参阅文档。
2. 然后获取最近 60 天内发生的所有企业事件的列表:
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.
此时您有一个企业用户对象列表和一个企业事件对象列表。Event 对象具有created_by与执行该操作的用户相对应的属性。一组不同的created_by.id值将为您提供过去 N 天内活跃的每个用户的 ID——我们称之为列表active_user_ids。然后,您可以为未出现在此列表中的任何 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查询字符串参数将事件类型限制为您真正感兴趣的事件。
于 2014-07-08T03:10:14.173 回答