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
saeeda
3 years agoNew member | Level 2
files/list_folder/continue
Hey,
When calling files/list_folder and the has_more parameter its 'true' we make another call to /list_folder/continue with the new cursor And so on.
The problem that we faced is that the entries for every single request doesn't change, and there is something weird : the cursor is too long!
Our purpose is to collect all the folders, but for one user when I have taken a look at the network I can see more that 1000 calls to list_folder/continue endpoint.
Hi saeeda,
As your code is not fully represented, may be something lefts hidden. 🤔
saeeda wrote:...
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
......
"then call continue" - Are you sure? It looks like it's not and you are falling in infinite recursion loop. 🤷
In case you are starting from beginning every loop step, then the list is normal to be the same, despite different cursor as result on every query! Be more careful. Check what's inside your 'get' method! Does the end point change as you have declared in comment? 🧐
- Greg-DBDropbox Staff
saeeda As Здравко mentioned, please make sure you're using the latest cursor each time, not just the original one. If something still isn't working as expected, please share the details, e.g., the steps to reproduce the issue and the code, so we can take a look.
Also, can you clarify what you mean when you say "the cursor is too long"? The "cursor" value returned by /2/files/list_folder[/continue] does not have a guaranteed maximum length, and the length can vary by account, so make sure your app can accept a cursor of any length.
- saeedaNew member | Level 2
function continueGetFoldersList(accessToken, cursor) {
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
.success(function (result) {
createFoldersTree(result.entries, false);// we use this function for filter the folders by .tag key
if (result.has_more) continueGetFoldersList(accessToken, result.cursor);// here we send the updated cursor after success
else loadingFolders = false;
})
...the result I got:-
{
"entries": [
{
".tag": "file",
"name": ...},...]
"cursor": "AAGV9oI1_kmtXIGG-ayMBO4Zj_TZzurRm7DwtAUkvEqhhMWVjmiplVOqV5HUI5xhxcfdVDq988TxqCmF9FjcRZcIIWDsPOLBFiIMTstxxmxeOYgh3LM-N2tLXrGZqAn73GJohOYcECoXB8pbalDMTKuBLLNQ1gvhfrdaq7ZDWBlpL0mTYAa2rlGp-g9EpFyqp1WpH9MALUsXWi17cVQu43wc4-LCZJ3N-VP36tSEfhfeohrKL1SAfySr2qEMzH0Wc5MXo4-lrd6wdeaAFmsupxmgIBik52NeSmvZ4JtHwl7zxqDWBMYHF_DlFHLUeLWobXObNsq_SdlawxQOvLEF6fT6ezsYHIf5pDkU4xYSAoacHPsLRbWbCeRb18J8jc2WN7KUUrNXBmKMu6fZ_9ybZ1iUMfbz2mn4vMLXx5RfEU405zSpvO1NaYy5sSiaqVfqLMAgs7gYIzX-orOKGFPNyXKERcGp_rRyAqJfuiS3UOeRF6rp9nrqOFZ2oxeprVlAfSmljtKmfRw_KjvKbFMdBBrbQb_PnpbZnXnsXCcFNgfNUFjvcgyceikL-CPM1IW6xrfY9pYW9iTNjKyd7nSfmFqBdYJ24nJeOYpwP5rtJoJC8d5gguOHxvpL_Ph8cLYHOHeMUG__C7qiUsooklby8cRPjx34QoJtGrOG0g1qPfO8llKInGCq-4xhOLuSjuD8OE1r2khZzkATmB-3kDDG64VSOkybaf-gteyLLHyUENOc_u-GGTZKF03XTRSBIturb5dFcRSsX0CRAuXyWbBk_XueKmSNHSMO4ZJGCVmnlEH3AzYWW7OXUuQN4LbiXIXz81B5l529AQMCM1jdvLVETkSCX2j9GehCxkC4zK1CBreA7b6C6XZAXiuQYXnKyxUys29rvCsJYdm9n3SKrtiCM9hjO3caRjOV9MKm5N-khcGVBJ1wyUb5fhDXl4ZmZ_o1i_Dl15L_yj9LrubwTtjxHNIeD3pym1bhLne6RZvzfHUYGyTwN4ijFfOQ-MwgNs6M5PypTYDV7_dX_bMD_bQZGJl1xlQ-iO2nQbmex2Y8VwX-RHjuUORse6QgimmE1LyrBcM9_ki0muxWeC4s4GDV1QMWicw51NtRqPkXBkvcwwlbGh_Krh_RtkVW7599XrkpA8nid1iX70uS9wAVHN5d_kaIDbeB8Sfh5I1GQcVJg8gdJ2Pv_2nxRlRxpSoJxDALTyvf5TBXNN8RqXrgUD5lNZAVwIYNUvPeWnvIYGAkg8fzZauun0CI_Ksf667GCjPWT-95ylS4wd9iA0IiXQr4DVUIXtAapN_mhcCEUVlz3ivysle0ZGvEfcxin7w2F1PzZJ_TnU-dqSw9fpQbxqFTqY1KSPsxtB7YpjX7WlypXMHqmN5bIIKw_vBEkyoAJC7J9czCe_U2nNQ4zeCiXxRfGt5dYEQjincLIRn6PMyOvjjbtqmCyL5Rh1n_OWumj-TeTcjMiC3T-oSUCpVKM0xJaOrpTkKN4PeuR7-j1uDBlTb6zZcNYIV15RNsbkWOMyQFGWo2ABiiATMtJSWt6hmhXCj9QOHQa2Z-6eae5ZGq6pz9CAx6ezAtvLzEfdlbNwHa_hkkmsHJkv5VdK_gkvqhdxuyFKZxKBMjVRx1rg76hv0od1Wmjeh4emPXISC5YjdPRv8f81fj5m38f1NXWLnSpBmYQxK9IYd1WQhn_RXFSgP646blU9W-QDBMxOYFpSYBduVDiTai-DtaPqXLcsyqO0Niqpwk0GKuk1XBWCEw-VmFhTGH_WU4XlVlumN1cXCEoMDFv-FLuc7ZXv35PfQfbWCFTcfZFxOAlr_jnA3qu6RNjjLRashnuChmsrPk84oshFO5V-B8dEIRId1GcSI6sVSuj9Ua2niOwHuoVHVzKk9K8TXSao19YaKKWa1VcuC5xSUKanEMh5zZ_QDEmPtR-AQN",
"has_more": true
}and on each response we got a new cursor but the same entries!
- ЗдравкоLegendary | Level 20
Hi saeeda,
As your code is not fully represented, may be something lefts hidden. 🤔
saeeda wrote:...
httpService.get('/dropbox/listfolders', {"cursor": cursor})// this endpoint from our server side when the cursor !== '' then call continue
......
"then call continue" - Are you sure? It looks like it's not and you are falling in infinite recursion loop. 🤷
In case you are starting from beginning every loop step, then the list is normal to be the same, despite different cursor as result on every query! Be more careful. Check what's inside your 'get' method! Does the end point change as you have declared in comment? 🧐
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,882 PostsLatest Activity: 3 years 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!