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 <C_CkHttp.h> #include <C_CkJsonObject.h> #include <C_CkHttpResponse.h> #include <C_CkStringBuilder.h> void ChilkatSample(void) { HCkHttp http; BOOL success; HCkJsonObject json; HCkHttpResponse resp; HCkStringBuilder sbResponseBody; HCkJsonObject jResp; int respStatusCode; const char *template_id; int j; int count_j; const char *name; const char *value; const char *metadataName; const char *metadataId; const char *metadataClient_modified; const char *metadataServer_modified; const char *metadataRev; int metadataSize; const char *metadataPath_lower; const char *metadataPath_display; BOOL metadataSharing_infoRead_only; const char *metadataSharing_infoParent_shared_folder_id; const char *metadataSharing_infoModified_by; BOOL metadataIs_downloadable; BOOL metadataHas_explicit_shared_members; const char *metadataContent_hash; const char *link; int i; int count_i; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http = CkHttp_Create(); // 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" // } json = CkJsonObject_Create(); CkJsonObject_UpdateString(json,"path","/video.mp4"); CkHttp_SetRequestHeader(http,"Authorization","Bearer DROPBOX_ACCESS_TOKEN"); CkHttp_SetRequestHeader(http,"Content-Type","application/json"); resp = CkHttp_PostJson3(http,"https://api.dropboxapi.com/2/files/get_temporary_link","application/json",json); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkHttp_Dispose(http); CkJsonObject_Dispose(json); return; } sbResponseBody = CkStringBuilder_Create(); CkHttpResponse_GetBodySb(resp,sbResponseBody); jResp = CkJsonObject_Create(); CkJsonObject_LoadSb(jResp,sbResponseBody); CkJsonObject_putEmitCompact(jResp,FALSE); printf("Response Body:\n"); printf("%s\n",CkJsonObject_emit(jResp)); respStatusCode = CkHttpResponse_getStatusCode(resp); printf("Response Status Code = %d\n",respStatusCode); if (respStatusCode >= 400) { printf("Response Header:\n"); printf("%s\n",CkHttpResponse_header(resp)); printf("Failed.\n"); CkHttpResponse_Dispose(resp); CkHttp_Dispose(http); CkJsonObject_Dispose(json); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); return; } CkHttpResponse_Dispose(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. metadataName = CkJsonObject_stringOf(jResp,"metadata.name"); metadataId = CkJsonObject_stringOf(jResp,"metadata.id"); metadataClient_modified = CkJsonObject_stringOf(jResp,"metadata.client_modified"); metadataServer_modified = CkJsonObject_stringOf(jResp,"metadata.server_modified"); metadataRev = CkJsonObject_stringOf(jResp,"metadata.rev"); metadataSize = CkJsonObject_IntOf(jResp,"metadata.size"); metadataPath_lower = CkJsonObject_stringOf(jResp,"metadata.path_lower"); metadataPath_display = CkJsonObject_stringOf(jResp,"metadata.path_display"); metadataSharing_infoRead_only = CkJsonObject_BoolOf(jResp,"metadata.sharing_info.read_only"); metadataSharing_infoParent_shared_folder_id = CkJsonObject_stringOf(jResp,"metadata.sharing_info.parent_shared_folder_id"); metadataSharing_infoModified_by = CkJsonObject_stringOf(jResp,"metadata.sharing_info.modified_by"); metadataIs_downloadable = CkJsonObject_BoolOf(jResp,"metadata.is_downloadable"); metadataHas_explicit_shared_members = CkJsonObject_BoolOf(jResp,"metadata.has_explicit_shared_members"); metadataContent_hash = CkJsonObject_stringOf(jResp,"metadata.content_hash"); link = CkJsonObject_stringOf(jResp,"link"); i = 0; count_i = CkJsonObject_SizeOfArray(jResp,"metadata.property_groups"); while (i < count_i) { CkJsonObject_putI(jResp,i); template_id = CkJsonObject_stringOf(jResp,"metadata.property_groups[i].template_id"); j = 0; count_j = CkJsonObject_SizeOfArray(jResp,"metadata.property_groups[i].fields"); while (j < count_j) { CkJsonObject_putJ(jResp,j); name = CkJsonObject_stringOf(jResp,"metadata.property_groups[i].fields[j].name"); value = CkJsonObject_stringOf(jResp,"metadata.property_groups[i].fields[j].value"); j = j + 1; } i = i + 1; } CkHttp_Dispose(http); CkJsonObject_Dispose(json); CkStringBuilder_Dispose(sbResponseBody); CkJsonObject_Dispose(jResp); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.