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) 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_CkJsonObjectW.h> #include <C_CkHttpW.h> #include <C_CkBinDataW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { HCkJsonObjectW jsonToken; BOOL success; HCkHttpW http; HCkBinDataW bdMedia; const wchar_t *url; HCkHttpResponseW 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 = CkJsonObjectW_Create(); success = CkJsonObjectW_LoadFile(jsonToken,L"qa_data/tokens/googlePhotos.json"); if (success == FALSE) { wprintf(L"%s\n",CkJsonObjectW_lastErrorText(jsonToken)); CkJsonObjectW_Dispose(jsonToken); return; } http = CkHttpW_Create(); CkHttpW_putAuthToken(http,CkJsonObjectW_stringOf(jsonToken,L"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 CkHttpW_SetRequestHeader(http,L"X-Goog-Upload-File-Name",L"penguins.jpg"); CkHttpW_SetRequestHeader(http,L"X-Goog-Upload-Protocol",L"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 = CkBinDataW_Create(); success = CkBinDataW_LoadFile(bdMedia,L"qa_data/jpg/penguins.jpg"); url = L"https://photoslibrary.googleapis.com/v1/uploads"; resp = CkHttpW_PBinaryBd(http,L"POST",url,bdMedia,L"application/octet-stream",FALSE,FALSE); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkJsonObjectW_Dispose(jsonToken); CkHttpW_Dispose(http); CkBinDataW_Dispose(bdMedia); return; } // Examine the response status code. Success is indicated by a status code of 200. wprintf(L"response status code: %d\n",CkHttpResponseW_getStatusCode(resp)); // Show the response body. if (CkHttpResponseW_getStatusCode(resp) == 200) { // Success. wprintf(L"Upload token: %s\n",CkHttpResponseW_bodyStr(resp)); } else { wprintf(L"Error:\n"); wprintf(L"%s\n",CkHttpResponseW_bodyStr(resp)); } CkHttpResponseW_Dispose(resp); // Clear headers such as X-Goog-Upload-File-Name for subsequent HTTP requests sent on this object.. CkHttpW_ClearHeaders(http); CkJsonObjectW_Dispose(jsonToken); CkHttpW_Dispose(http); CkBinDataW_Dispose(bdMedia); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.