We are aware of the issue with the badge emails resending to everyone, we apologise for the inconvenience - learn more here.

Forum Discussion

VahagnGhaz's avatar
VahagnGhaz
Explorer | Level 3
6 years ago

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               

    • VahagnGhaz's avatar
      VahagnGhaz
      Explorer | 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-DB's avatar
        Greg-DB
        Icon for Dropbox Staff rankDropbox 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("")