Sample code for 30+ languages & platforms
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

PowerBuilder
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