Swift
Swift
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 Swift Downloads
func chilkatTest() {
var success: Bool = false
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
// 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"
// }
let json = CkoJsonObject()!
json.updateString(jsonPath: "path", value: "/video.mp4")
http.setRequestHeader(name: "Authorization", value: "Bearer DROPBOX_ACCESS_TOKEN")
let resp = CkoHttpResponse()!
success = http.httpJson(verb: "POST", url: "https://api.dropboxapi.com/2/files/get_temporary_link", json: json, contentType: "application/json", response: resp)
if success == false {
print("\(http.lastErrorText!)")
return
}
let sbResponseBody = CkoStringBuilder()!
resp.getBodySb(sb: sbResponseBody)
let jResp = CkoJsonObject()!
jResp.loadSb(sb: sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = resp.statusCode.intValue
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 template_id: String?
var j: Int
var count_j: Int
var name: String?
var value: String?
var metadataName: String? = jResp.string(of: "metadata.name")
var metadataId: String? = jResp.string(of: "metadata.id")
var metadataClient_modified: String? = jResp.string(of: "metadata.client_modified")
var metadataServer_modified: String? = jResp.string(of: "metadata.server_modified")
var metadataRev: String? = jResp.string(of: "metadata.rev")
var metadataSize: Int = jResp.int(of: "metadata.size").intValue
var metadataPath_lower: String? = jResp.string(of: "metadata.path_lower")
var metadataPath_display: String? = jResp.string(of: "metadata.path_display")
var metadataSharing_infoRead_only: Bool = jResp.bool(of: "metadata.sharing_info.read_only")
var metadataSharing_infoParent_shared_folder_id: String? = jResp.string(of: "metadata.sharing_info.parent_shared_folder_id")
var metadataSharing_infoModified_by: String? = jResp.string(of: "metadata.sharing_info.modified_by")
var metadataIs_downloadable: Bool = jResp.bool(of: "metadata.is_downloadable")
var metadataHas_explicit_shared_members: Bool = jResp.bool(of: "metadata.has_explicit_shared_members")
var metadataContent_hash: String? = jResp.string(of: "metadata.content_hash")
var link: String? = jResp.string(of: "link")
var i: Int = 0
var count_i: Int = jResp.size(ofArray: "metadata.property_groups").intValue
while i < count_i {
jResp.i = i
template_id = jResp.string(of: "metadata.property_groups[i].template_id")
j = 0
count_j = jResp.size(ofArray: "metadata.property_groups[i].fields").intValue
while j < count_j {
jResp.j = j
name = jResp.string(of: "metadata.property_groups[i].fields[j].name")
value = jResp.string(of: "metadata.property_groups[i].fields[j].value")
j = j + 1
}
i = i + 1
}
}