We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.
Forum Discussion
VahagnGhaz
6 years agoExplorer | Level 3
How to provide the Dropbox-API-Select-User HTTP header with python API
Hi ! I've generated access token for Business App, and tried to make simple request
dbx = dropbox.Dropbox(my_token)
dbx.files_list_folder(path).entries
But I got
dropbox.exceptions.BadInputError: 'Error in call to API function "files/list_folder": This API function operates on a single Dropbox account, 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" URL parameter to specify the exact user
And from given documentation there is a part saying: Specify the member_id of the user that the app wants to act on using a custom HTTP header called Dropbox-API-Select-User.
I just got stuck and need help for spicifying Dropbox-API-Select-User via python or in other ways if there are so.
Additional info: I have team admin permissions
Permission type for app is Team member file access
- Greg-DBDropbox Staff
In the Dropbox Python SDK, you can specify this header using DropboxTeam.as_user.
You can get the team member IDs from a number of places, such as DropboxTeam.team_members_get_info, or DropboxTeam.team_members_list/DropboxTeam.team_members_list_continue.
- VahagnGhazExplorer | Level 3
Thanks for your reply. Everything works fine, but now I have another issue. All I need to list, write ... in TEAM shared folder, but when I use
self.dbx.files_list_folder(self.path).entries
I got ['Get Started with Dropbox Paper.url', 'Get Started with Dropbox.pdf'], which is my private folder content. So is there any way to access shared folder ?
- Greg-DBDropbox Staff
By default, API calls will operate in the private team member folder. It sounds like you want to access the team space though. To do so, you need to set the "path root" for the API call to be the team space.
I recommend reading the Namespace Guide, which covers this in detail.
In the Python SDK in particular, to specify a particular root, you should use with_path_root. For example:
dbx.with_path_root(dropbox.common.PathRoot.root("XXXXXXXXX")).files_list_folder("")
or:
dbx.with_path_root(dropbox.common.PathRoot.namespace_id("XXXXXXXXX")).files_list_folder("")
About Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.
5,877 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!