← Integrations

Dropbox

List, upload and download files in a user's Dropbox.

  • Files & Storage
  • OAuth 2.0
  • Works on Free plan
  • Bundled in Kirak
  • Maintained by Kirak
View on GitHub →

How to use it

This profile ships with Kirak. Add "integrations" to modules in kirak.json, then name the profile as below. There is nothing to download, and a copy in your project's integrations/ folder is an error.

Environment variables

VariableHolds
KIRAK_INTEGRATION_DROPBOX_CLIENT_SECRETThe OAuth client secret from the vendor's console. Secret: keep it out of kirak.json and out of source control.
KIRAK_AUTH_ENCRYPTION_KEYSEncrypts stored tokens. Shared by every integration; the module refuses to start without it.

The names follow the integration's name in kirak.json (dropbox here). Name it something else, such as dropbox_sales, and the variables change to match.

Redirect URL

Register this as the redirect (callback) URL in the vendor's console, with your app's address in place of <your-app> (the base_url in kirak.json):

https://<your-app>/integrations/dropbox/callback

How to get your keys

  1. Open the Dropbox App Console and choose Create app.
  2. Pick Scoped access and the kind of access (one folder or the full Dropbox).
  3. On the Permissions tab, tick the scopes your app needs and submit.
  4. On the Settings tab, add https://<your-app>/integrations/dropbox/callback under Redirect URIs.
  5. Copy the App key (the client ID) and the App secret (the client secret).
  6. Put the client ID in kirak.json as integrations.providers.dropbox.client_id, and the client secret in the environment as KIRAK_INTEGRATION_DROPBOX_CLIENT_SECRET. Never put the secret in kirak.json.

The vendor's own guide · Instructions out of date? ·Suggest an edit

kirak.json

Scopes
{
  "integrations": {
    "providers": {
      "dropbox": {
        "type": "oauth2",
        "profile": "dropbox",
        "client_id": "your-client-id"
      }
    }
  }
}

Merged into the profile: scope replaces the profile's default scopes.

Good to know

  • Offline access is requested with token_access_type=offline, which returns a refresh token.
  • Dropbox API calls are RPC-style: most take a POST with a JSON body, and the content endpoints live on another host (content.dropboxapi.com), which this profile does not allow yet.
  • Not verified against the vendor docs in this session: check the facts before release.
Ask about Kirak on