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 ActiveX) Paging User Photos with CursorDemonstrates how to iterate over the pages of user photos using a cursor.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var oauth2: TChilkatOAuth2; rest: TChilkatRest; success: Integer; responseJson: WideString; json: TChilkatJsonObject; afterCursor: WideString; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // This example assumes a previously obtained an access token oauth2 := TChilkatOAuth2.Create(Self); oauth2.AccessToken := 'FACEBOOK-ACCESS-TOKEN'; rest := TChilkatRest.Create(Self); // Connect to Facebook. success := rest.Connect('graph.facebook.com',443,1,1); if (success <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; // Provide the authentication credentials (i.e. the access key) rest.SetAuthOAuth2(oauth2.ControlInterface); // Indicate that we only want the photos the user has personally uploaded. rest.AddQueryParam('type','uploaded'); // We could limit the number of photos per page using the "limit" field. rest.AddQueryParam('limit','20'); // Get the 1st page of photos. (Not the actual image data, but the information about each photo.) // See https://developers.facebook.com/docs/graph-api/reference/user/photos/ for more information. responseJson := rest.FullRequestNoBody('GET','/v2.7/me/photos'); if (rest.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; json := TChilkatJsonObject.Create(Self); json.EmitCompact := 0; json.Load(responseJson); Memo1.Lines.Add(json.Emit()); // // See Parsing the Facebook User Photos for code showing how to parse the JSON photos content. // // Get the "after" cursor. afterCursor := json.StringOf('paging.cursors.after'); while json.LastMethodSuccess = 1 do begin Memo1.Lines.Add('after cursor: ' + afterCursor); // Prepare for getting the next page of photos. // We can continue using the same REST object. // If already connected, we'll continue using the existing connection. // Otherwise, a new connection will automatically be made if needed. rest.ClearAllQueryParams(); rest.AddQueryParam('type','uploaded'); rest.AddQueryParam('limit','20'); rest.AddQueryParam('after',afterCursor); responseJson := rest.FullRequestNoBody('GET','/v2.7/me/photos'); if (rest.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(rest.LastErrorText); Exit; end; json.Load(responseJson); // See Parsing the Facebook User Photos for code showing how to parse the JSON photos content. Memo1.Lines.Add(json.Emit()); // Get the cursor for the next page. afterCursor := json.StringOf('paging.cursors.after'); end; Memo1.Lines.Add('No more pages of photos.'); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.