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) Upload Media for Google PhotosDemonstrates how to upload a media file (such as a JPG image) that will be placed in a Google Photos album. Uploading is a two-step process:
This example shows step 1.
#include <C_CkJsonObject.h> #include <C_CkHttp.h> #include <C_CkBinData.h> #include <C_CkHttpResponse.h> void ChilkatSample(void) { HCkJsonObject jsonToken; BOOL success; HCkHttp http; HCkBinData bdMedia; const char *url; HCkHttpResponse resp; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Get the previously obtained access token. // See Get Google Photos Access Token. jsonToken = CkJsonObject_Create(); success = CkJsonObject_LoadFile(jsonToken,"qa_data/tokens/googlePhotos.json"); if (success == FALSE) { printf("%s\n",CkJsonObject_lastErrorText(jsonToken)); CkJsonObject_Dispose(jsonToken); return; } http = CkHttp_Create(); CkHttp_putAuthToken(http,CkJsonObject_stringOf(jsonToken,"access_token")); // This is the HTTPS POST we'll be sending: // POST https://photoslibrary.googleapis.com/v1/uploads // Authorization: Bearer OAUTH2_TOKEN // Content-type: application/octet-stream // X-Goog-Upload-File-Name: FILENAME // X-Goog-Upload-Protocol: raw CkHttp_SetRequestHeader(http,"X-Goog-Upload-File-Name","penguins.jpg"); CkHttp_SetRequestHeader(http,"X-Goog-Upload-Protocol","raw"); // Assuming the media isn't super large, we'll just read it into memory and send. // (Another example exists for streaming a large media file directly from the filesystem.) // Load the media file into memory. bdMedia = CkBinData_Create(); success = CkBinData_LoadFile(bdMedia,"qa_data/jpg/penguins.jpg"); url = "https://photoslibrary.googleapis.com/v1/uploads"; resp = CkHttp_PBinaryBd(http,"POST",url,bdMedia,"application/octet-stream",FALSE,FALSE); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkJsonObject_Dispose(jsonToken); CkHttp_Dispose(http); CkBinData_Dispose(bdMedia); return; } // Examine the response status code. Success is indicated by a status code of 200. printf("response status code: %d\n",CkHttpResponse_getStatusCode(resp)); // Show the response body. if (CkHttpResponse_getStatusCode(resp) == 200) { // Success. printf("Upload token: %s\n",CkHttpResponse_bodyStr(resp)); } else { printf("Error:\n"); printf("%s\n",CkHttpResponse_bodyStr(resp)); } CkHttpResponse_Dispose(resp); // Clear headers such as X-Goog-Upload-File-Name for subsequent HTTP requests sent on this object.. CkHttp_ClearHeaders(http); CkJsonObject_Dispose(jsonToken); CkHttp_Dispose(http); CkBinData_Dispose(bdMedia); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.