Sample code for 30+ languages & platforms
B4X

GeoOp - Get a list of all users

See more GeoOp Examples

Gets a list of all GeoOp users.

Chilkat B4X Downloads

B4X
Dim success As Boolean = False

'  This example assumes the Chilkat API to have been previously unlocked.
'  See Global Unlock Sample for sample code.

'  This example also assumes an OAuth2 access token was previously fetched.
'  and saved in a JSON file.  

'  First get our previously obtained access token.
'  {"access_token":"e6dqdG....mzjpT04w==","token_type":"Bearer","expires_in":2592000,"owner_id":999236}
Dim jsonToken As ChilkatJsonObject
jsonToken.Initialize
success = jsonToken.LoadFile("qa_data/tokens/geoop.json")

'  This example assumes we previously obtained an access token
Dim oauth2 As ChilkatOAuth2
oauth2.Initialize("oauth2")
oauth2.AccessToken = jsonToken.StringOf("access_token")

Dim rest As ChilkatRest
rest.Initialize("rest")

'  Connect to GeoOp and send the following GET request:

'  GET /users HTTP/1.1
'  Host: api.geoop.com
Dim bAutoReconnect As Boolean = True
success = rest.Connect("api.geoop.com", 443, True, bAutoReconnect)
If success = False Then
    Log(rest.LastErrorText)
    Return
End If


'  Provide the authentication credentials (i.e. the access token)
rest.SetAuthOAuth2(oauth2)

'  Set the X-Version header.
rest.AddHeader("X-Version", "1.0")

Dim responseBody As String = rest.FullRequestNoBody("GET", "/users")
If rest.LastMethodSuccess = False Then
    Log(rest.LastErrorText)
    Return
End If


'  If the response status code did not indicate success, then see what happened..
If rest.ResponseStatusCode <> 200 Then
    Log("Request Header: ")
    Log(rest.LastRequestHeader)
    Log("----")
    Log("Response StatusCode = " & rest.ResponseStatusCode)
    Log("Response StatusLine: " & rest.ResponseStatusText)
    Log("Response Header:")
    Log(rest.ResponseHeader)
    Log(responseBody)
    Return
End If


Dim json As ChilkatJsonObject
json.Initialize
json.EmitCompact = False
json.Load(responseBody)
'  Show the full JSON response..
Log(json.Emit)

'  These will be used for parsing date/time strings..
Dim dtime As ChilkatDateTime
dtime.Initialize
Dim bLocalTime As Boolean = True
Dim dt As ChilkatDtObj
dt.Initialize

'  Iterate over each user and get information from each.
Dim numRecords As Int = json.SizeOfArray("users")
Dim i As Int = 0
Do While i < numRecords

    json.I = i
    Log("id: " & json.StringOf("users[i].id"))
    Log("firstName: " & json.StringOf("users[i].firstName"))
    Log("lastName: " & json.StringOf("users[i].lastName"))
    Log("companyName: " & json.StringOf("users[i].companyName"))
    Log("active: " & json.IntOf("users[i].active"))
    Log("isAssignable: " & json.BoolOf("users[i].isAssignable"))
    Log("account id: " & json.BoolOf("users[i].account.id"))

    dtime.SetFromTimestamp(json.StringOf("users[i].created"))
    dtime.ToDtObj(bLocalTime, dt)

    Log("created: " & dt.Month & "/" & dt.Day & "/" & dt.Year & "  " & dt.Hour & ":" & dt.Minute)

    Log("----")
    i = i + 1
Loop

'  The responseJson looks like this:
'  {
'    "result": "success",
'    "users": [
'      {
'        "id": 984236,
'        "firstName": "Joe",
'        "lastName": "Smith",
'        "companyName": "Chilkat Software, Inc.",
'        "email": "support@chilkatsoft.com",
'        "phone": "",
'        "mobile": "1-630-555-5555",
'        "hourlyRate": 0,
'        "active": 1,
'        "deleted": false,
'        "colour": "#D2BC14",
'        "created": "2016-10-26T12:05:09+00:00",
'        "modified": "2016-10-26T12:05:09+00:00",
'        "isAssignable": true,
'        "avatarUrl": "https:\/\/www.geoop.com\/images\/mobithumb_984236.jpg",
'        "role": {
'          "id": 1
'        },
'        "account": {
'          "id": 39409
'        },
'        "status": {}
'      },
'      {
'        "id": 984237,
'        "firstName": "Demo",
'        "lastName": "Employee",
'        "companyName": "",
'        "email": "",
'        "phone": "",
'        "mobile": "58458458475854758",
'        "hourlyRate": 0,
'        "active": 0,
'        "deleted": true,
'        "colour": "#4C4CFF",
'        "created": "2015-09-03T01:56:17+00:00",
'        "modified": "2016-06-14T20:20:58+00:00",
'        "isAssignable": true,
'        "avatarUrl": "https:\/\/www.geoop.com\/images\/mobithumb_984237.jpg",
'        "role": {
'          "id": 2
'        },
'        "account": {
'          "id": 39409
'        },
'        "status": {
'          "message": null,
'          "timestamp": "2015-09-03T01:57:45+00:00"
'        }
'      }
'    ],
'    "metadata": {
'      "page": 1,
'      "pagesCount": 1,
'      "recordsPerPage": 20,
'      "recordsCount": 2
'    }
'  }
'  
'