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) Google Photos List Media ItemsList all media items from a user's Google Photos library.
#include <C_CkJsonObjectW.h> #include <C_CkHttpW.h> #include <C_CkHttpResponseW.h> void ChilkatSample(void) { HCkJsonObjectW jsonToken; BOOL success; HCkHttpW http; HCkHttpResponseW resp; HCkJsonObjectW json; int i; int count_i; const wchar_t *id; const wchar_t *productUrl; const wchar_t *baseUrl; const wchar_t *mimeType; const wchar_t *mediaMetadataCreationTime; const wchar_t *mediaMetadataWidth; const wchar_t *mediaMetadataHeight; const wchar_t *mediaMetadataPhotoCameraMake; const wchar_t *mediaMetadataPhotoCameraModel; const wchar_t *mediaMetadataPhotoFocalLength; const wchar_t *mediaMetadataPhotoApertureFNumber; int mediaMetadataPhotoIsoEquivalent; const wchar_t *filename; const wchar_t *description; // 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")); // For more information, see Google Photos List Media Items API Documentation resp = CkHttpW_QuickRequest(http,L"GET",L"https://photoslibrary.googleapis.com/v1/mediaItems?pageSize=100"); if (CkHttpW_getLastMethodSuccess(http) == FALSE) { wprintf(L"%s\n",CkHttpW_lastErrorText(http)); CkJsonObjectW_Dispose(jsonToken); CkHttpW_Dispose(http); 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)); json = CkJsonObjectW_Create(); CkJsonObjectW_Load(json,CkHttpResponseW_bodyStr(resp)); CkHttpResponseW_Dispose(resp); // Sample response: CkJsonObjectW_putEmitCompact(json,FALSE); wprintf(L"%s\n",CkJsonObjectW_emit(json)); // (See parsing code below...) // { // "mediaItems": [ // { // "id": "AKcbugGCOVK46E2qq6tv_wEuQuoK_a0iHet9rGH0-UWoZFnTMpEZ2jNjHWggz7Aq3hhjJv4YJsDY6ntowKsvnfnr1Bu3ASnS_w", // "productUrl": "https://photos.google.com/lr/photo/AKcbugGCOVK46E2qq6tv_wEuQuoK_a0iHet9rGH0-UWoZFnTMpEZ2jNjHWggz7Aq3hhjJv4YJsDY6ntowKsvnfnr1Bu3ASnS_w", // "baseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e7ZcHJhUmxO8EgRSBFyBaGAyXE...YMWCAMDlNTA6-L5LiijXAUfKgD1ULhr9IabJBGTT7ETUdeeFTQTM", // "mimeType": "image/jpeg", // "mediaMetadata": { // "creationTime": "2019-04-11T17:55:53Z", // "width": "640", // "height": "480", // "photo": { // "cameraMake": "Apple", // "cameraModel": "iPhone 5s", // "focalLength": 4.15, // "apertureFNumber": 2.2, // "isoEquivalent": 32 // } // }, // "filename": "IMG_1206.JPG" // }, // { // "id": "AKcbugFACWDNCQJ2nwhDemR6vRupHSvOUSKukyOHqTWO1CCIs0qw-C0b5MGmrveyjYe8ps8z1rZTRQ8hmSQsODSsobNqDl8vTg", // "productUrl": "https://photos.google.com/lr/photo/AKcbugFACWDNCQJ2nwhDemR6vRupHSvOUSKukyOHqTWO1CCIs0qw-C0b5MGmrveyjYe8ps8z1rZTRQ8hmSQsODSsobNqDl8vTg", // "baseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e7NQe0qdoZrDHkfkK7LOsw-V...YJ1mrohD5duHsY2QJCzLTXZ65EOUrJefars3xDSwsCYlelY470kk", // "mimeType": "image/jpeg", // "mediaMetadata": { // "creationTime": "2016-10-09T01:49:58Z", // "width": "600", // "height": "427", // "photo": {} // }, // "filename": "hedgehogs.jpg" // }, // { // "id": "AKcbugHEVyTFgIYb7GzhRFP5KvhBRIIsRcb6Cd4-2ByHzad2oqZnWF2aMPoXY-vfrXmefdTlyF3yZ22Odz6IFLs8pnJlOoVBUg", // "productUrl": "https://photos.google.com/lr/photo/AKcbugHEVyTFgIYb7GzhRFP5KvhBRIIsRcb6Cd4-2ByHzad2oqZnWF2aMPoXY-vfrXmefdTlyF3yZ22Odz6IFLs8pnJlOoVBUg", // "baseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e64wP9gpPXKq5b8FCFKzu9C...QTFxMLVRaLeQZBvYGZVIe7xCcRPnRhMpiXwL_RV_aU", // "mimeType": "image/jpeg", // "mediaMetadata": { // "creationTime": "2015-09-21T20:30:02Z", // "width": "59", // "height": "69", // "photo": {} // }, // "filename": "chilkat_gravatar.jpg" // }, // { // "id": "AKcbugHdYTp-S-D_EYnSBA4EhrKT86IFbmdRuiDclKka9T5b6UIbeDvhTAu1bebYOCFKH-gv1ME1z6RyMN4eW_9J5ol9_qizMg", // "productUrl": "https://photos.google.com/lr/photo/AKcbugHdYTp-S-D_EYnSBA4EhrKT86IFbmdRuiDclKka9T5b6UIbeDvhTAu1bebYOCFKH-gv1ME1z6RyMN4eW_9J5ol9_qizMg", // "baseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e4e69WQpYcQX...m87rR6gDBhcB55TL__3ckBYNQ8MjbqpBtmojjYWrLG_j4VsVSA", // "mimeType": "image/jpeg", // "mediaMetadata": { // "creationTime": "2008-05-29T15:30:55Z", // "width": "120", // "height": "120", // "photo": {} // }, // "filename": "starfish.jpg" // }, // { // "id": "AKcbugGwtCih2tdl3s1-NMvZFaco3W7XnRwvwtj02J9DJyl6JmrLZDVUFcxQl4AT04LaNrPpsrojeTsDSzOVOF5IgKefD0Y-MQ", // "description": "Photo of Penguins", // "productUrl": "https://photos.google.com/lr/photo/AKcbugGwtCih2tdl3s1-NMvZFaco3W7XnRwvwtj02J9DJyl6JmrLZDVUFcxQl4AT04LaNrPpsrojeTsDSzOVOF5IgKefD0Y-MQ", // "baseUrl": "https://lh3.googleusercontent.com/lr/AGWb-e5Cj3EgyhscdT...X3-W562iiKtTa8lc_QPxCrpJu-m7cZyNGwGTANVpGe1XG", // "mimeType": "image/jpeg", // "mediaMetadata": { // "creationTime": "2008-02-18T05:07:31Z", // "width": "1024", // "height": "768", // "photo": {} // }, // "filename": "penguins.jpg" // } // ] // } // // Use this online tool to generate parsing code from sample JSON: // Generate Parsing Code from JSON i = 0; count_i = CkJsonObjectW_SizeOfArray(json,L"mediaItems"); while (i < count_i) { CkJsonObjectW_putI(json,i); id = CkJsonObjectW_stringOf(json,L"mediaItems[i].id"); productUrl = CkJsonObjectW_stringOf(json,L"mediaItems[i].productUrl"); baseUrl = CkJsonObjectW_stringOf(json,L"mediaItems[i].baseUrl"); mimeType = CkJsonObjectW_stringOf(json,L"mediaItems[i].mimeType"); mediaMetadataCreationTime = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.creationTime"); mediaMetadataWidth = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.width"); mediaMetadataHeight = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.height"); mediaMetadataPhotoCameraMake = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.photo.cameraMake"); mediaMetadataPhotoCameraModel = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.photo.cameraModel"); mediaMetadataPhotoFocalLength = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.photo.focalLength"); mediaMetadataPhotoApertureFNumber = CkJsonObjectW_stringOf(json,L"mediaItems[i].mediaMetadata.photo.apertureFNumber"); mediaMetadataPhotoIsoEquivalent = CkJsonObjectW_IntOf(json,L"mediaItems[i].mediaMetadata.photo.isoEquivalent"); filename = CkJsonObjectW_stringOf(json,L"mediaItems[i].filename"); description = CkJsonObjectW_stringOf(json,L"mediaItems[i].description"); i = i + 1; } CkJsonObjectW_Dispose(jsonToken); CkHttpW_Dispose(http); CkJsonObjectW_Dispose(json); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.