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
(Delphi DLL) Google Photos List Media ItemsList all media items from a user's Google Photos library.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, HttpResponse, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var jsonToken: HCkJsonObject; success: Boolean; http: HCkHttp; resp: HCkHttpResponse; json: HCkJsonObject; i: Integer; count_i: Integer; id: PWideChar; productUrl: PWideChar; baseUrl: PWideChar; mimeType: PWideChar; mediaMetadataCreationTime: PWideChar; mediaMetadataWidth: PWideChar; mediaMetadataHeight: PWideChar; mediaMetadataPhotoCameraMake: PWideChar; mediaMetadataPhotoCameraModel: PWideChar; mediaMetadataPhotoFocalLength: PWideChar; mediaMetadataPhotoApertureFNumber: PWideChar; mediaMetadataPhotoIsoEquivalent: Integer; filename: PWideChar; description: PWideChar; begin // 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) then begin Memo1.Lines.Add(CkJsonObject__lastErrorText(jsonToken)); Exit; end; 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) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; // Examine the response status code. Success is indicated by a status code of 200. Memo1.Lines.Add('response status code: ' + IntToStr(CkHttpResponse_getStatusCode(resp))); json := CkJsonObject_Create(); CkJsonObject_Load(json,CkHttpResponse__bodyStr(resp)); CkHttpResponse_Dispose(resp); // Sample response: CkJsonObject_putEmitCompact(json,False); Memo1.Lines.Add(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 do begin 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; end; CkJsonObject_Dispose(jsonToken); CkHttp_Dispose(http); CkJsonObject_Dispose(json); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.