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
(Unicode 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_CkHttpW.h> #include <C_CkJsonObjectW.h> #include <C_CkHttpResponseW.h> #include <C_CkStringBuilderW.h> void ChilkatSample(void) { HCkHttpW http; BOOL success; HCkJsonObjectW json; HCkHttpResponseW resp; HCkStringBuilderW sbResponseBody; HCkJsonObjectW jResp; int respStatusCode; const wchar_t *template_id; int j; int count_j; const wchar_t *name; const wchar_t *value; const wchar_t *metadataName; const wchar_t *metadataId; const wchar_t *metadataClient_modified; const wchar_t *metadataServer_modified; const wchar_t *metadataRev; int metadataSize; const wchar_t *metadataPath_lower; const wchar_t *metadataPath_display; BOOL metadataSharing_infoRead_only; const wchar_t *metadataSharing_infoParent_shared_folder_id; const wchar_t *metadataSharing_infoModified_by; BOOL metadataIs_downloadable; BOOL metadataHas_explicit_shared_members; const wchar_t *metadataContent_hash; const wchar_t *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 = CkHttpW_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 = CkJsonObjectW_Create(); CkJsonObjectW_UpdateString(json,L"path",L"/video.mp4"); CkHttpW_SetRequestHeader(http,L"Authorization",L"Bearer DROPBOX_ACCESS_TOKEN"); CkHttpW_SetRequestHeader(http,L"Content-Type",L"application/json"); resp = CkHttpW_PostJson3(http,L"https://api.dropboxapi.com/2/files/get_temporary_link",L"application/json",json); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); return; } sbResponseBody = CkStringBuilderW_Create(); CkHttpResponseW_GetBodySb(resp,sbResponseBody); jResp = CkJsonObjectW_Create(); CkJsonObjectW_LoadSb(jResp,sbResponseBody); CkJsonObjectW_putEmitCompact(jResp,FALSE); wprintf(L"Response Body:\n"); wprintf(L"%s\n",CkJsonObjectW_emit(jResp)); respStatusCode = CkHttpResponseW_getStatusCode(resp); wprintf(L"Response Status Code = %d\n",respStatusCode); if (respStatusCode >= 400) { wprintf(L"Response Header:\n"); wprintf(L"%s\n",CkHttpResponseW_header(resp)); wprintf(L"Failed.\n"); CkHttpResponseW_Dispose(resp); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); CkStringBuilderW_Dispose(sbResponseBody); CkJsonObjectW_Dispose(jResp); return; } CkHttpResponseW_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 = CkJsonObjectW_stringOf(jResp,L"metadata.name"); metadataId = CkJsonObjectW_stringOf(jResp,L"metadata.id"); metadataClient_modified = CkJsonObjectW_stringOf(jResp,L"metadata.client_modified"); metadataServer_modified = CkJsonObjectW_stringOf(jResp,L"metadata.server_modified"); metadataRev = CkJsonObjectW_stringOf(jResp,L"metadata.rev"); metadataSize = CkJsonObjectW_IntOf(jResp,L"metadata.size"); metadataPath_lower = CkJsonObjectW_stringOf(jResp,L"metadata.path_lower"); metadataPath_display = CkJsonObjectW_stringOf(jResp,L"metadata.path_display"); metadataSharing_infoRead_only = CkJsonObjectW_BoolOf(jResp,L"metadata.sharing_info.read_only"); metadataSharing_infoParent_shared_folder_id = CkJsonObjectW_stringOf(jResp,L"metadata.sharing_info.parent_shared_folder_id"); metadataSharing_infoModified_by = CkJsonObjectW_stringOf(jResp,L"metadata.sharing_info.modified_by"); metadataIs_downloadable = CkJsonObjectW_BoolOf(jResp,L"metadata.is_downloadable"); metadataHas_explicit_shared_members = CkJsonObjectW_BoolOf(jResp,L"metadata.has_explicit_shared_members"); metadataContent_hash = CkJsonObjectW_stringOf(jResp,L"metadata.content_hash"); link = CkJsonObjectW_stringOf(jResp,L"link"); i = 0; count_i = CkJsonObjectW_SizeOfArray(jResp,L"metadata.property_groups"); while (i < count_i) { CkJsonObjectW_putI(jResp,i); template_id = CkJsonObjectW_stringOf(jResp,L"metadata.property_groups[i].template_id"); j = 0; count_j = CkJsonObjectW_SizeOfArray(jResp,L"metadata.property_groups[i].fields"); while (j < count_j) { CkJsonObjectW_putJ(jResp,j); name = CkJsonObjectW_stringOf(jResp,L"metadata.property_groups[i].fields[j].name"); value = CkJsonObjectW_stringOf(jResp,L"metadata.property_groups[i].fields[j].value"); j = j + 1; } i = i + 1; } CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); CkStringBuilderW_Dispose(sbResponseBody); CkJsonObjectW_Dispose(jResp); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.