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) Get the Photos for a UserDemonstrates how to get the photos that the user has uploaded.
IncludeFile "CkDtObj.pb" IncludeFile "CkRest.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkOAuth2.pb" IncludeFile "CkDateTime.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 by setting a limit. CkRest::ckAddQueryParam(rest,"limit","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. 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) ; A sample JSON response is shown below. ; This is the code to parse the JSON response. dtime.i = CkDateTime::ckCreate() If dtime.i = 0 Debug "Failed to create object." ProcedureReturn EndIf bLocalTime.i = 1 dt.i i.i = 0 numItems.i = CkJsonObject::ckSizeOfArray(json,"data") While i < numItems CkJsonObject::setCkI(json, i) Debug "--- " + Str(i) name.s = CkJsonObject::ckStringOf(json,"data[i].name") If CkJsonObject::ckLastMethodSuccess(json) = 1 Debug "name: " + name EndIf Debug "id: " + CkJsonObject::ckStringOf(json,"data[i].id") ; We can load the created_time into a CkDateTime... CkDateTime::ckSetFromTimestamp(dtime,CkJsonObject::ckStringOf(json,"data[i].created_time")) dt = CkDateTime::ckGetDtObj(dtime,bLocalTime) Debug Str(CkDtObj::ckMonth(dt)) + "/" + Str(CkDtObj::ckDay(dt)) + "/" + Str(CkDtObj::ckYear(dt)) + " " + Str(CkDtObj::ckHour(dt)) + ":" + Str(CkDtObj::ckMinute(dt)) CkDtObj::ckDispose(dt) i = i + 1 Wend ; We can get the paging information as follows: Debug "URL for next page: " + CkJsonObject::ckStringOf(json,"paging.next") Debug "before cursor: " + CkJsonObject::ckStringOf(json,"paging.cursors.before") Debug "after cursor: " + CkJsonObject::ckStringOf(json,"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" ; } ; } ; CkOAuth2::ckDispose(oauth2) CkRest::ckDispose(rest) CkJsonObject::ckDispose(json) CkDateTime::ckDispose(dtime) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.