DataFlex
DataFlex
Paging User Photos with Cursor
See more Facebook Examples
Demonstrates how to iterate over the pages of user photos using a cursor.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vOauth2
Handle hoOauth2
Handle hoRest
String sResponseJson
Handle hoJson
String sAfterCursor
String sTemp1
Boolean bTemp1
Move False To iSuccess
// 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
Get Create (RefClass(cComChilkatOAuth2)) To hoOauth2
If (Not(IsComObjectCreated(hoOauth2))) Begin
Send CreateComObject of hoOauth2
End
Set ComAccessToken Of hoOauth2 To "FACEBOOK-ACCESS-TOKEN"
Get Create (RefClass(cComChilkatRest)) To hoRest
If (Not(IsComObjectCreated(hoRest))) Begin
Send CreateComObject of hoRest
End
// Connect to Facebook.
Get ComConnect Of hoRest "graph.facebook.com" 443 True True To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
// Provide the authentication credentials (i.e. the access key)
Get pvComObject of hoOauth2 to vOauth2
Get ComSetAuthOAuth2 Of hoRest vOauth2 To iSuccess
// Indicate that we only want the photos the user has personally uploaded.
Get ComAddQueryParam Of hoRest "type" "uploaded" To iSuccess
// We could limit the number of photos per page using the "limit" field.
Get ComAddQueryParam Of hoRest "limit" "20" To iSuccess
// 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.
Get ComFullRequestNoBody Of hoRest "GET" "/v2.7/me/photos" To sResponseJson
Get ComLastMethodSuccess Of hoRest To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Set ComEmitCompact Of hoJson To False
Get ComLoad Of hoJson sResponseJson To iSuccess
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
//
// See Parsing the Facebook User Photos for code showing how to parse the JSON photos content.
//
// Get the "after" cursor.
Get ComStringOf Of hoJson "paging.cursors.after" To sAfterCursor
While ((ComLastMethodSuccess(hoJson)) = True)
Showln "after cursor: " sAfterCursor
// 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.
Get ComClearAllQueryParams Of hoRest To iSuccess
Get ComAddQueryParam Of hoRest "type" "uploaded" To iSuccess
Get ComAddQueryParam Of hoRest "limit" "20" To iSuccess
Get ComAddQueryParam Of hoRest "after" sAfterCursor To iSuccess
Get ComFullRequestNoBody Of hoRest "GET" "/v2.7/me/photos" To sResponseJson
Get ComLastMethodSuccess Of hoRest To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComLoad Of hoJson sResponseJson To iSuccess
// See Parsing the Facebook User Photos for code showing how to parse the JSON photos content.
Get ComEmit Of hoJson To sTemp1
Showln sTemp1
// Get the cursor for the next page.
Get ComStringOf Of hoJson "paging.cursors.after" To sAfterCursor
Loop
Showln "No more pages of photos."
End_Procedure