Sample code for 30+ languages & platforms
Visual FoxPro

GeoOp - Find Account ID by Name

See more GeoOp Examples

Finds an account ID by name.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loJsonToken
LOCAL loOauth2
LOCAL loRest
LOCAL lnBAutoReconnect
LOCAL lcResponseBody
LOCAL loJson
LOCAL lnCaseSensitive
LOCAL lcAccountId

lnSuccess = 0

* 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}
loJsonToken = CreateObject('Chilkat.JsonObject')
lnSuccess = loJsonToken.LoadFile("qa_data/tokens/geoop.json")

* This example assumes we previously obtained an access token
loOauth2 = CreateObject('Chilkat.OAuth2')
loOauth2.AccessToken = loJsonToken.StringOf("access_token")

loRest = CreateObject('Chilkat.Rest')

* Connect to GeoOp and send the following GET request:

* GET /users HTTP/1.1
* Host: api.geoop.com
lnBAutoReconnect = 1
lnSuccess = loRest.Connect("api.geoop.com",443,1,lnBAutoReconnect)
IF (lnSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loJsonToken
    RELEASE loOauth2
    RELEASE loRest
    CANCEL
ENDIF

* Provide the authentication credentials (i.e. the access token)
loRest.SetAuthOAuth2(loOauth2)

* Set the X-Version header.
loRest.AddHeader("X-Version","1.0")

lcResponseBody = loRest.FullRequestNoBody("GET","/accounts")
IF (loRest.LastMethodSuccess <> 1) THEN
    ? loRest.LastErrorText
    RELEASE loJsonToken
    RELEASE loOauth2
    RELEASE loRest
    CANCEL
ENDIF

* If the response status code did not indicate success, then see what happened..
IF (loRest.ResponseStatusCode <> 200) THEN
    ? "Request Header: "
    ? loRest.LastRequestHeader
    ? "----"
    ? "Response StatusCode = " + STR(loRest.ResponseStatusCode)
    ? "Response StatusLine: " + loRest.ResponseStatusText
    ? "Response Header:"
    ? loRest.ResponseHeader
    ? lcResponseBody
    RELEASE loJsonToken
    RELEASE loOauth2
    RELEASE loRest
    CANCEL
ENDIF

loJson = CreateObject('Chilkat.JsonObject')
loJson.EmitCompact = 0
loJson.Load(lcResponseBody)
* Show the full JSON response.  (see the sample response at the bottom of this example)
? loJson.Emit()

* To find the account id for a given company name:
lnCaseSensitive = 0
lcAccountId = loJson.FindRecordString("accounts","companyName","Chilkat Software, Inc.",lnCaseSensitive,"id")
IF (loJson.LastMethodSuccess <> 1) THEN
    ? "Account not found."
ELSE
    ? "The account ID is: " + lcAccountId
ENDIF

* Find the account ID for the 1st company matching "Chilkat*"
lcAccountId = loJson.FindRecordString("accounts","companyName","Chilkat*",lnCaseSensitive,"id")
IF (loJson.LastMethodSuccess <> 1) THEN
    ? "Account not found."
ELSE
    ? "The account ID is: " + lcAccountId
ENDIF

* The full JSON response for GET /accounts looks like this:

* 	{
* 	  "result": "success",
* 	  "accounts": [
* 	    {
* 	      "id": 39409,
* 	      "companyName": "Chilkat Software, Inc.",
* 	      "licenses": 999,
* 	      "countryCode": 1
* 	    }
* 	  ],
* 	  "metadata": {
* 	    "page": 1,
* 	    "pagesCount": 1,
* 	    "recordsPerPage": 20,
* 	    "recordsCount": 1
* 	  }
* 	}
* 

RELEASE loJsonToken
RELEASE loOauth2
RELEASE loRest
RELEASE loJson