You might see that the Dropbox Community team have been busy working on some major updates to the Community itself! So, here is some info on what’s changed, what’s staying the same and what you can expect from the Dropbox Community overall.
Forum Discussion
AdanHerrera
7 years agoExplorer | Level 3
Python API
I'm working with Python & API v2 I need the following information: If I have a shared folder with several users, is it possible to obtain a record of the users who have visited or downloaded the fi...
- 7 years ago
It looks like you have the right basic idea, but there are a few things to note:
- You have 'none' instead of 'None'.
- You can filter by category, which in this case would be 'dropbox.team_log.EventCategory.file_operations'.
- You can filter by time, which can be good as without a time filter you may have to parse through more events than desired.
- You need to check GetTeamEventsResult.has_more, and call back to team_log_get_events_continue if it's True.
So, for example, to look for file_download events from the past week, that might look like:
import datetime import dropbox access_token = '...' dbx_team = dropbox.DropboxTeam(access_token) account_id = 'dbid:...' time_range = dropbox.team_common.TimeRange( start_time=datetime.datetime.now() - datetime.timedelta(days=7)) def handle_events(events): print("Processing %s events..." % len(events)) for event in events: if event.event_type.is_file_download(): print(event) result = dbx_team.team_log_get_events( limit=1000, account_id=account_id, time=time_range, category=dropbox.team_log.EventCategory.file_operations) handle_events(result.events) while result.has_more: result = dbx_team.team_log_get_events_continue(result.cursor) handle_events(result.events)
- 7 years ago1. No, unfortunately there isn't a way to filter by path across all members, but I'll pass this along as a feature request.
2. Also no, it's not possible to filter to a specific event type, but we'll consider this a feature request as well.
Greg-DB
Dropbox Staff
The UserFileMembershipInfo object is used in SharedFileMembers, which is returned by sharing_list_file_members. That only applies to specific files that have been shared individually, not to files inside shared folders. That being the case, it sounds like this isn't what you're looking for in your scenario.
There isn't an equivalent property for files in shared folders, though if you're using a Dropbox Business API app with "team auditing" access , you can get 'file_download' events from team_log_get_events and team_log_get_events_continue.
AdanHerrera
7 years agoExplorer | Level 3
Thanks Greg for your time.
1) I was looking into UserFileMembershipInfo and get some value information.
2) I'm working now with Dropbox Business API app "team auditing" access, you can please show me how can I get the 'File_download' events. I don't know how to do, I was trying this:
import dropbox
token= ' '
dbx_team = dropbox.DropboxTeam(token)
Resultado = dbx_team.team_log_get_events(limit=1000, account_id=u'dbid:fsfdsddf', time=None, category=none)
print(Resultado)
- Greg-DB7 years agoDropbox Staff
It looks like you have the right basic idea, but there are a few things to note:
- You have 'none' instead of 'None'.
- You can filter by category, which in this case would be 'dropbox.team_log.EventCategory.file_operations'.
- You can filter by time, which can be good as without a time filter you may have to parse through more events than desired.
- You need to check GetTeamEventsResult.has_more, and call back to team_log_get_events_continue if it's True.
So, for example, to look for file_download events from the past week, that might look like:
import datetime import dropbox access_token = '...' dbx_team = dropbox.DropboxTeam(access_token) account_id = 'dbid:...' time_range = dropbox.team_common.TimeRange( start_time=datetime.datetime.now() - datetime.timedelta(days=7)) def handle_events(events): print("Processing %s events..." % len(events)) for event in events: if event.event_type.is_file_download(): print(event) result = dbx_team.team_log_get_events( limit=1000, account_id=account_id, time=time_range, category=dropbox.team_log.EventCategory.file_operations) handle_events(result.events) while result.has_more: result = dbx_team.team_log_get_events_continue(result.cursor) handle_events(result.events)
- AdanHerrera7 years agoExplorer | Level 3
Perfect.
1- In this case you are filtering by (account_id) and getting the events of a specific user, but we can do the same filtering for example by a folder and getting the events of the users in this path?
2- In the result I see this event EventType(u'file_download', FileDownloadType(description=u'Downloaded files and/or folders')), could it be programmed so that it only prints this type of events?
Thanks again, I hope I'm not asking a lot of questions
- Greg-DB7 years agoDropbox Staff1. No, unfortunately there isn't a way to filter by path across all members, but I'll pass this along as a feature request.
2. Also no, it's not possible to filter to a specific event type, but we'll consider this a feature request as well.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 PostsLatest Activity: 12 months agoIf you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!