PowerBuilder
PowerBuilder
Paging User Photos with Cursor
See more Facebook Examples
Demonstrates how to iterate over the pages of user photos using a cursor.Chilkat PowerBuilder Downloads
integer li_rc
integer li_Success
oleobject loo_Oauth2
oleobject loo_Rest
string ls_ResponseJson
oleobject loo_Json
string ls_AfterCursor
li_Success = 0
// 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
loo_Oauth2 = create oleobject
li_rc = loo_Oauth2.ConnectToNewObject("Chilkat.OAuth2")
if li_rc < 0 then
destroy loo_Oauth2
MessageBox("Error","Connecting to COM object failed")
return
end if
loo_Oauth2.AccessToken = "FACEBOOK-ACCESS-TOKEN"
loo_Rest = create oleobject
li_rc = loo_Rest.ConnectToNewObject("Chilkat.Rest")
// Connect to Facebook.
li_Success = loo_Rest.Connect("graph.facebook.com",443,1,1)
if li_Success <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Oauth2
destroy loo_Rest
return
end if
// Provide the authentication credentials (i.e. the access key)
loo_Rest.SetAuthOAuth2(loo_Oauth2)
// Indicate that we only want the photos the user has personally uploaded.
loo_Rest.AddQueryParam("type","uploaded")
// We could limit the number of photos per page using the "limit" field.
loo_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.
ls_ResponseJson = loo_Rest.FullRequestNoBody("GET","/v2.7/me/photos")
if loo_Rest.LastMethodSuccess <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Oauth2
destroy loo_Rest
return
end if
loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
loo_Json.EmitCompact = 0
loo_Json.Load(ls_ResponseJson)
Write-Debug loo_Json.Emit()
//
// See Parsing the Facebook User Photos for code showing how to parse the JSON photos content.
//
// Get the "after" cursor.
ls_AfterCursor = loo_Json.StringOf("paging.cursors.after")
do while loo_Json.LastMethodSuccess = 1
Write-Debug "after cursor: " + ls_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.
loo_Rest.ClearAllQueryParams()
loo_Rest.AddQueryParam("type","uploaded")
loo_Rest.AddQueryParam("limit","20")
loo_Rest.AddQueryParam("after",ls_AfterCursor)
ls_ResponseJson = loo_Rest.FullRequestNoBody("GET","/v2.7/me/photos")
if loo_Rest.LastMethodSuccess <> 1 then
Write-Debug loo_Rest.LastErrorText
destroy loo_Oauth2
destroy loo_Rest
destroy loo_Json
return
end if
loo_Json.Load(ls_ResponseJson)
// See Parsing the Facebook User Photos for code showing how to parse the JSON photos content.
Write-Debug loo_Json.Emit()
// Get the cursor for the next page.
ls_AfterCursor = loo_Json.StringOf("paging.cursors.after")
loop
Write-Debug "No more pages of photos."
destroy loo_Oauth2
destroy loo_Rest
destroy loo_Json