Visual FoxPro
Visual FoxPro
GeoOp - Find Account ID by Name
See more GeoOp Examples
Finds an account ID by name.Chilkat Visual FoxPro Downloads
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