Need to see if your shared folder is taking up space on your dropbox 👨💻? Find out how to check here.
Forum Discussion
GopalN
6 years agoExplorer | Level 4
Not able to get team folders or files using python sdk
Python SDK, Not Able to get files and folders where I'm using dropbox business API access token
output = dbx.DropboxTeam(_dropbox_token).as_admin(ng_member_id).files_list_folder("").entries ...
- 6 years ago
What is the value of your '_team_name_space_id' variable?
Based on the error output you shared, if you want to list the contents of the team space, you should set your '_team_name_space_id' variable to "5632093280".
Greg-DB
Dropbox Community Moderator
6 years ago[Cross-linking for reference: https://stackoverflow.com/questions/59877833/download-files-from-dropbox-team-folder-using-python-sdk/59884229?noredirect=1#comment105910967_59884229 ]
There are two things to note here that may be preventing you from listing everything you're expecting:
- The files_list_folder method isn't guaranteed to return everything in the requested folder. You need to always check the returned ListFolderResult.has_more value and if it's True, call back to files_list_folder_continue to get more results, as documented in the files_list_folder documentation.
- Dropbox API calls operate in the team member folder by default. If you're on a team with the team space configuration, that won't include your team space folders. You can access the team space though, using the 'Dropbox-API-Path-Root' header, as covered in the Namespace Guide. To set that in the Python SDK, you should use the with_path_root method. Your 'files_list_folder' code would then look something like:
output = dbx.DropboxTeam(_dropbox_token).with_path_root(dbx.common.PathRoot.root(team_space_namespace_id)).as_admin(ng_member_id).files_list_folder("").entries
print(output)
GopalN
6 years agoExplorer | Level 4
Thanks for the solution,
I have tried the above code
dbx = dropbox.DropboxTeam(_dropbox_token).as_user(ng_member_id)
output = dbx.with_path_root(dropbox.common.PathRoot.root(_team_name_space_id)).files_list_folder("").entries
print(output)Its giving me the error :
('8928caa6ce35a895296b45e5d694ddfe', 'Error in call to API function "files/list_folder": This API function operates on a single Dropbox account
t, but the OAuth 2 access token you provided is for an entire Dropbox Business team. Since your API app key has team member file access permissions, you can operate on a team member\'s Dropbox by providing the "Dropbox-API-Select-User" HTTP header or "select_user"
Note: I'm the admin and have Permission Type: Team Member file access in business API
Thanks for your solution.
- Greg-DB6 years ago
Dropbox Community Moderator
It looks like there's currently an issue with the Python SDK if you use 'as_user' or 'as_admin' before 'with_path_root'. I'll ask the team to fix that up.
As a workaround, please use 'with_path_root' before 'as_user' or 'as_admin', as in the example in my previous comment.
- GopalN6 years agoExplorer | Level 4
When I try to do with your reference code this exist with error
dropbox.exceptions.PathRootError: PathRootError('8255e7bee11bfaa054cc966323944b00', PathRootError('invalid_root', TeamRootInfo(root_namespace_id='5632093280', home_namespace_id='6821388560'
, home_path='/Gopal N')))
please suggest the solution.- Greg-DB6 years ago
Dropbox Community Moderator
What is the value of your '_team_name_space_id' variable?
Based on the error output you shared, if you want to list the contents of the team space, you should set your '_team_name_space_id' variable to "5632093280".
- Greg-DB6 years ago
Dropbox Community Moderator
For reference, the issue of not being able to use 'as_user' or 'as_admin' before 'with_path_root' should now be fixed as of v10.3.0 of the Dropbox Python SDK.
About Discuss Dropbox Developer & API
Make connections with other developers
The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.
If 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, Facebook or Instagram.
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!