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

Forum Discussion

DarioO's avatar
DarioO
New member | Level 2
8 months ago

Using dropbox API from a scheduled Task: authenticating but NOT as a User

I need a job that moves 4 times a day files from a folder to dropbox and reading other files from another folder . Designin the architecture is not a problem. However I'm stuck with the API of dropbox. development done from mulesoft.

 

Authentication types - Developers - Dropbox 

 

I see two main authentication types:
1) Oauth => it requires user to manually log in each time from a web form: requires manual interaction and a web service

2) App authentication => nice basic authentication, easy peasy.... or not. Because https://api.dropboxapi.com/2/files/list_folder

returns 

{
    "error_summary": "path/unsupported_content_type/",
    "error": {
        ".tag": "path",
        "path": {
            ".tag": "unsupported_content_type"
        }
    }
}
 
and searching for errors the problem is I cannot use the "path" because app authentication do not allow that.
 
 
So is there any authentication method that allows me to setup a "fire and forget forever" scheduled job? I need to move files and display them, my app is already configured correctly.
 
I tried to use of official Mulesoft Dropbox User Connector... It works to a certain degree. From what I understand there must be an additional authentication method not documented, because the connector is able to list the files.. given only the basic credentials.. however I cannot use the official mulesoft dropbox connector because it miss the
 
2/files/list_folder/continue
 So basically I'm locked out of my task becase either:
1) there is not a authentication that works without user interaction that allows to access basic functionality (think it as a Backend to Backend requirment)
2) the piece of software that would allow such communication happen (using maybe a undocumented authentication feature?) has missing functionalities
 
AND the grant_type "client_credentials" is not working:
 
{
    "error": "The server has either erred or is incapable of performing the requested operation."
}
 
 
  • Здравко's avatar
    Здравко
    Legendary | Level 20

    DarioO wrote:

    ...
    1) Oauth => it requires user to manually log in each time from a web form: requires manual interaction and a web service

    ...

    Hi DarioO,

    You have a lot of misunderstandings how Dropbox API and OAuth work, but the above, that I underlined, is most important, I think.

    In general No - you don't need log in each time if you have unexpiring token - refresh token. Access token expires and most probably you're taking into account only that part. If you authorize your access as offline type (i.e. you receive refresh token in addition to access token), you can refresh your access token using the available refresh token without additional user interaction. An simplistic example can be seen here.

    Hope this helps.