Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(C++) Create a Temporary Public Link to a DropBox FileGet a temporary link to stream content of a file. This link will expire in four hours and afterwards you will get 410 Gone. For more information, see https://www.dropbox.com/developers/documentation/http/documentation#files-get_temporary_link
#include <CkHttp.h> #include <CkJsonObject.h> #include <CkHttpResponse.h> #include <CkStringBuilder.h> void ChilkatSample(void) { // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkHttp http; bool success; // 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" // } CkJsonObject json; json.UpdateString("path","/video.mp4"); http.SetRequestHeader("Authorization","Bearer DROPBOX_ACCESS_TOKEN"); http.SetRequestHeader("Content-Type","application/json"); CkHttpResponse *resp = http.PostJson3("https://api.dropboxapi.com/2/files/get_temporary_link","application/json",json); if (http.get_LastMethodSuccess() == false) { std::cout << http.lastErrorText() << "\r\n"; return; } CkStringBuilder sbResponseBody; resp->GetBodySb(sbResponseBody); CkJsonObject jResp; jResp.LoadSb(sbResponseBody); jResp.put_EmitCompact(false); std::cout << "Response Body:" << "\r\n"; std::cout << jResp.emit() << "\r\n"; int respStatusCode = resp->get_StatusCode(); std::cout << "Response Status Code = " << respStatusCode << "\r\n"; if (respStatusCode >= 400) { std::cout << "Response Header:" << "\r\n"; std::cout << resp->header() << "\r\n"; std::cout << "Failed." << "\r\n"; delete resp; return; } delete resp; // 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 // Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat. // See this example explaining how this memory should be used: const char * functions. const char *template_id = 0; int j; int count_j; const char *name = 0; const char *value = 0; const char *metadataName = jResp.stringOf("metadata.name"); const char *metadataId = jResp.stringOf("metadata.id"); const char *metadataClient_modified = jResp.stringOf("metadata.client_modified"); const char *metadataServer_modified = jResp.stringOf("metadata.server_modified"); const char *metadataRev = jResp.stringOf("metadata.rev"); int metadataSize = jResp.IntOf("metadata.size"); const char *metadataPath_lower = jResp.stringOf("metadata.path_lower"); const char *metadataPath_display = jResp.stringOf("metadata.path_display"); bool metadataSharing_infoRead_only = jResp.BoolOf("metadata.sharing_info.read_only"); const char *metadataSharing_infoParent_shared_folder_id = jResp.stringOf("metadata.sharing_info.parent_shared_folder_id"); const char *metadataSharing_infoModified_by = jResp.stringOf("metadata.sharing_info.modified_by"); bool metadataIs_downloadable = jResp.BoolOf("metadata.is_downloadable"); bool metadataHas_explicit_shared_members = jResp.BoolOf("metadata.has_explicit_shared_members"); const char *metadataContent_hash = jResp.stringOf("metadata.content_hash"); const char *link = jResp.stringOf("link"); int i = 0; int count_i = jResp.SizeOfArray("metadata.property_groups"); while (i < count_i) { jResp.put_I(i); template_id = jResp.stringOf("metadata.property_groups[i].template_id"); j = 0; count_j = jResp.SizeOfArray("metadata.property_groups[i].fields"); while (j < count_j) { jResp.put_J(j); name = jResp.stringOf("metadata.property_groups[i].fields[j].name"); value = jResp.stringOf("metadata.property_groups[i].fields[j].value"); j = j + 1; } i = i + 1; } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.