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
Malagann
6 years agoExplorer | Level 3
The Cursor of a user
Hello again. After some searching, I'm back with another question that mirrors this one (https://www.dropboxforum.com/t5/API-Support-Feedback/Webhook-to-get-the-latest-changes-for-each-user-in-the/t...
- 6 years ago
If the "entries" value is an empty list like you've shown here, it just means that there are no new entries to return for the cursor you supplied. (If the token or cursor were invalid, the API would respond with a specific error accordingly.)
Note that if you go through the /2/files/list_folder results and save the cursor after the webhook is received, there may not be any further results.
The basic flow typically looks like this:
- the user connects to the app for the first time
- the app starts listing the files and folders for the user using /2/files/list_folder and /2/files/list_folder/continue as necessary
- the app stores the last returned cursor
- the user leaves and some time passes
- the user makes changes elsewhere
- Dropbox sends the webhook notification for that user
- the app recieves the webhook notification for that user and looks like up the last received cursor for that user
- the app calls /2/files/list_folder/continue with that cursor to get the latest changes
Greg-DB
Dropbox Staff
The Dropbox API does not offer a way to directly determine which cursor is for which user ID, or vice versa, based on just the cursors or tokens themselves.
Instead, you need to store the asociation between the cursor and the user itself on your side. That is, when you receive a cursor and want to store it for later, key it by the account ID of the user. (You can do the same for the access token itself.) That way, when you receive the webhook notification with a particular account ID, you can look up the cursor and token for that particular user by looking up that account ID. (The exact data model you use is up to you of course, as that will depend on how your app works.)
Malagann
6 years agoExplorer | Level 3
hello, thanks for taking the time !
The thing is, hence my question and issues, I don't know the cursor, do I ? I get the json of the notification when the webhook is activated with the dbID of the account and the IDs of the users but, before storing it and keying it with the appropriate ID, where can I find the cursor ?
- Greg-DB6 years agoDropbox Staff
You should store the cursor for each user from your previous use of the API for each user. That might be from when the user first set up your app, or whenever they last used it, for instance. Specifically, it can be from the last time you called /2/files/list_folder or /2/files/list_folder/continue for that user. Each of those endpoints return a new cursor with the result.
- Malagann6 years agoExplorer | Level 3
Me again, still lost. Sorry for the late answer.
I understand what you're saying but still cannot get with which end to start.
I've done some testing with cursors, with list_folder and list_folder/continue but get a different cursor everytime I use it with the same account so how do I exactly get THE cursor of the user when I get something different everytime ?
You're mentionning the "previous use of the API for each user" but how do I get the very first one, the very first time ? I receive the very first notification from my dropbox webhook, a file was deleted or added or moved (which ever case) and I want the info of list_folder/continue which requires a cursor.
I'd gladly associate the id of an user with its cursor but I still need somehow to find it the first time. Which is the last part of my problems. Is there an easy way in the api for it ? Or just a way for it ?
Anyways, I'd like to thank you again with your continued assistance.
- Greg-DB6 years agoDropbox Staff
There isn't a single cursor for each user. A cursor is way to keep track of "where" you are in the file listing, so it is expected to change over time (and even just for each call) for each user. You should continuously update the latest cursor you received for each user.
The first time you want to list the files and folders for a user, when you don't yet have a cursor for them, you should call /2/files/list_folder, which doesn't take a cursor as a parameter. The response will include a cursor, which you can then use with /2/files/list_folder/continue to then "pick up" where you left off with the previous call.
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,889 PostsLatest Activity: 5 hours 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!