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

LewisO's avatar
LewisO
Helpful | Level 5
4 months ago

Implementing Dropbox features in a custom file explorer: API limitations for desktop apps?

I'm developing a desktop application as an alternative to Windows Explorer / macOS Finder and want to integrate the following Dropbox features:

1. Reading thumbnails for images and other supported file formats
2. Retrieving sync status for locally visible Dropbox files/folders (selective sync)
3. Supporting common Dropbox commands in context menus (e.g., creating Dropbox links)

My goal is to mimic Dropbox's integration with native file explorers.

After reviewing the API documentation, it appears the Dropbox API is designed primarily for web applications and doesn't allow direct access to local Dropbox folder content. Is this correct? If so, are there any recommended approaches or alternative APIs for implementing these features in a desktop application?

  • No, Dropbox does not offer a way to programmatically retrieve thumbnails locally without having the user authorize the app to access their content via the Dropbox API.

  • Здравко's avatar
    Здравко
    Legendary | Level 20

    LewisO wrote:

    ...

    After reviewing the API documentation, it appears the Dropbox API is designed primarily for web applications and doesn't allow direct access to local Dropbox folder content. Is this correct? ...


    Hi LewisO,

    In  fact No - Dropbox API can be used in standalone applications as well as web based application - no any such limitations. If you mean that the application need to perform HTTP link then Yes, that's correct.

     


    LewisO wrote:

    ..., are there any recommended approaches or alternative APIs for implementing these features in a desktop application?


    In fact there are such implementations - all plugins you want to mimic use such interfaces. Unfortunately, all those interfaces are not documented and, in this context, difficult to use.

    Let's hope this will change at some point.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Staff rankDropbox Staff

    As Здравко said, the Dropbox API can be used by any app that can make HTTPS connections, whether that's a desktop app, web app, or something else.

     

    For a desktop app, you can interact with the data in the local Dropbox folder, and/or use the Dropbox API as desired.

     

    If you want to programmatically find the local Dropbox folder, check out this help article.

     

    For information on using the Dropbox API, check out the information here. To address each of the pieces of functionality you mentioned in particular, using the API:

    1. To get thumbnails, you can use the /2/files/get_thumbnail_v2 or /2/files/get_thumbnail_batch endpoints.
    2. Dropbox doesn't offer functionality for checking or setting selective sync statuses or settings, but I'll pass this along as a feature request. I can't promise if or when that might be implemented though.
    3. To create shared links, you can use /2/sharing/create_shared_link_with_settings.
    • LewisO's avatar
      LewisO
      Helpful | Level 5

      Здравко Greg-DB Thank you for your replies.

      I understand that desktop applications can also use the API by http calls, to clarify, I want to know if the following are the only ways to get thumbnails(and other features), despite my software having full access to the local Dropbox folder:

      1. register my app in dropbox app console

      2. when users want to visit the local dropbox folder in my application, I need to proactively inform and get manual approvals from users to acquire dropbox API auth token via OAuth

      3. for all the local image files displayed within my software, request the thumbnails via Dropbox API

      Other than the above procedures, there is no other direct way to get the thumbnails, despite the software already having full access to local disks, is this correct?

      • Здравко's avatar
        Здравко
        Legendary | Level 20

        LewisO wrote:

        ...

        Other than the above procedures, there is no other direct way to get the thumbnails, despite the software already having full access to local disks, is this correct?


        Hi LewisO,

        In your question exists some ambiguity. Do you want just access to the local Dropbox folder (consequences don't matter) or you want to get thumbnails while preserving online/offline status? 🤔 Your question formulation doesn't clarify this.

        If you want just access (i.e. information where Dropbox folder resides in and how is its exact name), following Greg links above you will know that such information could be found for Windows using information in file %LOCALAPPDATA%\Dropbox\info.json. There is information about the account type and folder placement as well as some other details. Maybe here is the place to mention that there are some small mistakes in JSON formatting that's good idea to be fixed - I believe Greg will forward this to the employees engaged with documentation. I believe too that you will be able see them. Even more the exact file is accessible to you on your machine where you can see what's there (exact/correct format). In such a way you don't need to register anything and just access the files there as you would do for any other local file. You should keep in mind that the files did access in such a way may change their status from online only to available offline - something that may not be desirable. It's up to you, is that something that you want (design decision).

        You may access thumbnails online - something that will avoid local access to the files themself, so avoid any sync status change (guaranteed). In this case you will need to register your application and ask the user for granting access to the data (despite you have already access to user local data, that doesn't give your application automatically access to the data online "mirror"). Once you have such access granted, you may ask for desired file thumbnail. And all other files information too. You should keep in mind that Dropbox path is POSIX style absolute path with components matching to all folders (and at the end file name with extension) that reside inside local Dropbox folder, but nothing outside the local Dropbox folder (including Dropbox folder itself get out from that list). For team accounts you may need to change the root namespace (usually by default users home folder), to actual account root. Skipping this may lead to inaccessible files/folders (incorrect paths to them).

        On Linux and Mac JSON files are placed on ~/.dropbox/info.json.

        Hope this sheds some additional light.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback

Find help with the Dropbox API from other developers.

5,882 PostsLatest Activity: 3 years ago
325 Following

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 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!