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) Google Photos List Media ItemsList all media items from a user's Google Photos library.
#include <C_CkJsonObject.h> #include <C_CkHttp.h> #include <C_CkHttpResponse.h> void ChilkatSample(void) { HCkJsonObject jsonToken; BOOL success; HCkHttp http; HCkHttpResponse resp; HCkJsonObject json; int i; int count_i; const char *id; const char *productUrl; const char *baseUrl; const char *mimeType; const char *mediaMetadataCreationTime; const char *mediaMetadataWidth; const char *mediaMetadataHeight; const char *mediaMetadataPhotoCameraMake; const char *mediaMetadataPhotoCameraModel; const char *mediaMetadataPhotoFocalLength; const char *mediaMetadataPhotoApertureFNumber; int mediaMetadataPhotoIsoEquivalent; const char *filename; const char *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 = 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")); // For more information, see Google Photos List Media Items API Documentation resp = CkHttp_QuickRequest(http,"GET","https://photoslibrary.googleapis.com/v1/mediaItems?pageSize=100"); if (CkHttp_getLastMethodSuccess(http) == FALSE) { printf("%s\n",CkHttp_lastErrorText(http)); CkJsonObject_Dispose(jsonToken); CkHttp_Dispose(http); return; } // Examine the response status code. Success is indicated by a status code of 200. printf("response status code: %d\n",CkHttpResponse_getStatusCode(resp)); json = CkJsonObject_Create(); CkJsonObject_Load(json,CkHttpResponse_bodyStr(resp)); CkHttpResponse_Dispose(resp); // Sample response: CkJsonObject_putEmitCompact(json,FALSE); printf("%s\n",CkJsonObject_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 = CkJsonObject_SizeOfArray(json,"mediaItems"); while (i < count_i) { CkJsonObject_putI(json,i); id = CkJsonObject_stringOf(json,"mediaItems[i].id"); productUrl = CkJsonObject_stringOf(json,"mediaItems[i].productUrl"); baseUrl = CkJsonObject_stringOf(json,"mediaItems[i].baseUrl"); mimeType = CkJsonObject_stringOf(json,"mediaItems[i].mimeType"); mediaMetadataCreationTime = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.creationTime"); mediaMetadataWidth = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.width"); mediaMetadataHeight = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.height"); mediaMetadataPhotoCameraMake = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.photo.cameraMake"); mediaMetadataPhotoCameraModel = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.photo.cameraModel"); mediaMetadataPhotoFocalLength = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.photo.focalLength"); mediaMetadataPhotoApertureFNumber = CkJsonObject_stringOf(json,"mediaItems[i].mediaMetadata.photo.apertureFNumber"); mediaMetadataPhotoIsoEquivalent = CkJsonObject_IntOf(json,"mediaItems[i].mediaMetadata.photo.isoEquivalent"); filename = CkJsonObject_stringOf(json,"mediaItems[i].filename"); description = CkJsonObject_stringOf(json,"mediaItems[i].description"); i = i + 1; } CkJsonObject_Dispose(jsonToken); CkHttp_Dispose(http); CkJsonObject_Dispose(json); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.