Sample code for 30+ languages & platforms
Dart

Create a Temporary Public Link to a DropBox File

See more Dropbox Examples

Get a temporary link to stream content of a file. This link will expire in four hours and afterwards you will get 410 Gone.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example assumes the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final http = CkHttp();

  // Implements the following CURL command:

  // curl -X POST https://api.dropboxapi.com/2/files/get_temporary_link \
  //     --header "Authorization: Bearer DROPBOX_ACCESS_TOKEN" \
  //     --header "Content-Type: application/json" \
  //     --data "{\"path\": \"/video.mp4\"}"

  // Use this online tool to generate code from sample JSON:
  // Generate Code to Create JSON

  // The following JSON is sent in the request body.

  // {
  //   "path": "/video.mp4"
  // }

  final json = CkJsonObject();
  json.updateString('path', '/video.mp4');

  http.setRequestHeader('Authorization', 'Bearer DROPBOX_ACCESS_TOKEN');

  final resp = CkHttpResponse();
  try {
    http.httpJson('POST', 'https://api.dropboxapi.com/2/files/get_temporary_link', json, 'application/json', resp);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  final sbResponseBody = CkStringBuilder();
  resp.getBodySb(sbResponseBody);
  final jResp = CkJsonObject();
  jResp.loadSb(sbResponseBody);
  jResp.emitCompact = false;

  print('Response Body:');
  print(jResp.emit());

  final respStatusCode = resp.statusCode;
  print('Response Status Code = $respStatusCode');
  if (respStatusCode >= 400) {
    print('Response Header:');
    print(resp.header);
    print('Failed.');
    return;
  }

  // Sample JSON response:
  // (Sample code for parsing the JSON response is shown below)

  // {
  //   "metadata": {
  //     "name": "Prime_Numbers.txt",
  //     "id": "id:a4ayc_80_OEAAAAAAAAAXw",
  //     "client_modified": "2015-05-12T15:50:38Z",
  //     "server_modified": "2015-05-12T15:50:38Z",
  //     "rev": "a1c10ce0dd78",
  //     "size": 7212,
  //     "path_lower": "/homework/math/prime_numbers.txt",
  //     "path_display": "/Homework/math/Prime_Numbers.txt",
  //     "sharing_info": {
  //       "read_only": true,
  //       "parent_shared_folder_id": "84528192421",
  //       "modified_by": "dbid:AAH4f99T0taONIb-OurWxbNQ6ywGRopQngc"
  //     },
  //     "is_downloadable": true,
  //     "property_groups": [
  //       {
  //         "template_id": "ptid:1a5n2i6d3OYEAAAAAAAAAYa",
  //         "fields": [
  //           {
  //             "name": "Security Policy",
  //             "value": "Confidential"
  //           }
  //         ]
  //       }
  //     ],
  //     "has_explicit_shared_members": false,
  //     "content_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
  //   },
  //   "link": "https://dl.dropboxusercontent.com/apitl/1/YXNkZmFzZGcyMzQyMzI0NjU2NDU2NDU2"
  // }

  // Sample code for parsing the JSON response...
  // Use the following online tool to generate parsing code from sample JSON:
  // Generate Parsing Code from JSON

  var templateId = '';
  var j = 0;
  var countJ = 0;
  var name = '';
  var value = '';

  final metadataName = jResp.stringOf('metadata.name');
  final metadataId = jResp.stringOf('metadata.id');
  final metadataClientModified = jResp.stringOf('metadata.client_modified');
  final metadataServerModified = jResp.stringOf('metadata.server_modified');
  final metadataRev = jResp.stringOf('metadata.rev');
  final metadataSize = jResp.intOf('metadata.size');
  final metadataPathLower = jResp.stringOf('metadata.path_lower');
  final metadataPathDisplay = jResp.stringOf('metadata.path_display');
  final metadataSharingInfoParentSharedFolderId = jResp.stringOf('metadata.sharing_info.parent_shared_folder_id');
  final metadataSharingInfoModifiedBy = jResp.stringOf('metadata.sharing_info.modified_by');
  final metadataContentHash = jResp.stringOf('metadata.content_hash');
  final link = jResp.stringOf('link');
  var i = 0;
  final countI = jResp.sizeOfArray('metadata.property_groups');
  while (i < countI) {
    jResp.i = i;
    templateId = jResp.stringOf('metadata.property_groups[i].template_id');
    j = 0;
    countJ = jResp.sizeOfArray('metadata.property_groups[i].fields');
    while (j < countJ) {
      jResp.j = j;
      name = jResp.stringOf('metadata.property_groups[i].fields[j].name');
      value = jResp.stringOf('metadata.property_groups[i].fields[j].value');
      j++;
    }

    i++;
  }
}