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
(PureBasic) Paging User Photos with CursorDemonstrates how to iterate over the pages of user photos using a cursor.
IncludeFile "CkRest.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkOAuth2.pb" Procedure ChilkatExample() ; 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.i = CkOAuth2::ckCreate() If oauth2.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkOAuth2::setCkAccessToken(oauth2, "FACEBOOK-ACCESS-TOKEN") rest.i = CkRest::ckCreate() If rest.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Connect to Facebook. success.i = CkRest::ckConnect(rest,"graph.facebook.com",443,1,1) If success <> 1 Debug CkRest::ckLastErrorText(rest) CkOAuth2::ckDispose(oauth2) CkRest::ckDispose(rest) ProcedureReturn EndIf ; Provide the authentication credentials (i.e. the access key) CkRest::ckSetAuthOAuth2(rest,oauth2) ; Indicate that we only want the photos the user has personally uploaded. CkRest::ckAddQueryParam(rest,"type","uploaded") ; We could limit the number of photos per page using the "limit" field. CkRest::ckAddQueryParam(rest,"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.s = CkRest::ckFullRequestNoBody(rest,"GET","/v2.7/me/photos") If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkOAuth2::ckDispose(oauth2) CkRest::ckDispose(rest) ProcedureReturn EndIf json.i = CkJsonObject::ckCreate() If json.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkJsonObject::setCkEmitCompact(json, 0) CkJsonObject::ckLoad(json,responseJson) Debug CkJsonObject::ckEmit(json) ; ; See Parsing the Facebook User Photos for code showing how to parse the JSON photos content. ; ; Get the "after" cursor. afterCursor.s = CkJsonObject::ckStringOf(json,"paging.cursors.after") While CkJsonObject::ckLastMethodSuccess(json) = 1 Debug "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. CkRest::ckClearAllQueryParams(rest) CkRest::ckAddQueryParam(rest,"type","uploaded") CkRest::ckAddQueryParam(rest,"limit","20") CkRest::ckAddQueryParam(rest,"after",afterCursor) responseJson = CkRest::ckFullRequestNoBody(rest,"GET","/v2.7/me/photos") If CkRest::ckLastMethodSuccess(rest) <> 1 Debug CkRest::ckLastErrorText(rest) CkOAuth2::ckDispose(oauth2) CkRest::ckDispose(rest) CkJsonObject::ckDispose(json) ProcedureReturn EndIf CkJsonObject::ckLoad(json,responseJson) ; See Parsing the Facebook User Photos for code showing how to parse the JSON photos content. Debug CkJsonObject::ckEmit(json) ; Get the cursor for the next page. afterCursor = CkJsonObject::ckStringOf(json,"paging.cursors.after") Wend Debug "No more pages of photos." CkOAuth2::ckDispose(oauth2) CkRest::ckDispose(rest) CkJsonObject::ckDispose(json) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.