Sample code for 30+ languages & platforms
Swift

Get the Photos for a User

See more Facebook Examples

Demonstrates how to get the photos that the user has uploaded.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // 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
    let oauth2 = CkoOAuth2()!
    oauth2.accessToken = "FACEBOOK-ACCESS-TOKEN"

    let rest = CkoRest()!

    // Connect to Facebook.
    success = rest.connect(hostname: "graph.facebook.com", port: 443, tls: true, autoReconnect: true)
    if success == false {
        print("\(rest.lastErrorText!)")
        return
    }

    // Provide the authentication credentials (i.e. the access key)
    rest.setAuthOAuth2(authProvider: oauth2)

    // Indicate that we only want the photos the user has personally uploaded.
    rest.addQueryParam(name: "type", value: "uploaded")

    // We could limit the number of photos by setting a limit.
    rest.addQueryParam(name: "limit", value: "5")

    // Gets 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.
    var responseJson: String? = rest.fullRequestNoBody(httpVerb: "GET", uriPath: "/v2.7/me/photos")
    if rest.lastMethodSuccess == false {
        print("\(rest.lastErrorText!)")
        return
    }

    let json = CkoJsonObject()!
    json.emitCompact = false
    json.load(json: responseJson)
    print("\(json.emit()!)")

    // A sample JSON response is shown below.  
    // This is the code to parse the JSON response.

    let dtime = CkoDateTime()!
    var bLocalTime: Bool = true

    let dt = CkoDtObj()!
    var i: Int = 0
    var numItems: Int = json.size(ofArray: "data").intValue
    while i < numItems {
        json.i = i
        print("--- \(i)")
        var name: String? = json.string(of: "data[i].name")
        if json.lastMethodSuccess == true {
            print("name: \(name!)")
        }

        print("id: \(json.string(of: "data[i].id")!)")

        // We can load the created_time into a CkDateTime...
        dtime.set(fromTimestamp: json.string(of: "data[i].created_time"))
        dtime.toDtObj(bLocal: bLocalTime, dtObj: dt)

        print("\(dt.month.intValue)/\(dt.day.intValue)/\(dt.year.intValue)  \(dt.hour.intValue):\(dt.minute.intValue)")
        i = i + 1
    }

    // We can get the paging information as follows:
    print("URL for next page: \(json.string(of: "paging.next")!)")
    print("before cursor: \(json.string(of: "paging.cursors.before")!)")
    print("after cursor: \(json.string(of: "paging.cursors.after")!)")

    // This is a sample JSON response:
    // { 
    //   "data": [
    //     {
    //       "created_time": "2016-09-29T20:46:18+0000",
    //       "name": "Ignore my posts -- I'm doing some testing for Facebook related programming...",
    //       "id": "10210199026347451"
    //     },
    //     { 
    //       "created_time": "2016-09-19T02:00:42+0000",
    //       "id": "10210091531240138"
    //     },
    //     { 
    //       "created_time": "2016-09-19T02:00:42+0000",
    //       "id": "10210091520620125"
    //     },
    //     { 
    //       "created_time": "2016-09-19T01:59:46+0000",
    //       "name": "I would've went for a swim had it not been for the sign",
    //       "id": "10210091522299917"
    //     },
    //     { 
    //       "created_time": "2016-09-12T00:37:35+0000",
    //       "id": "10210023316834798"
    //     }
    //   ],
    //   "paging": { 
    //     "cursors": { 
    //       "before": "MTAyMTAxOTkwMjYzNDc0NTEZD",
    //       "after": "MTAyMTAwMjMzMTU4MzQ3OTgZD"
    //     },
    //     "next": "https:\/\/graph.facebook.com\/v2.7\/10224048320139890\/photos?type=uploaded&limit=5&after=MTAyMTAwMjMzMTU4MzQ3OTgZD"
    //   }
    // }
    // 

}