Visual FoxPro
Visual FoxPro
Test Salesforce OAuth2 Access Token
See more Salesforce Examples
Demonstrates how to make a simple Salesforce REST API call to test a previously obtained access token.Chilkat Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loHttp
LOCAL loJson
LOCAL loSbUrl
LOCAL loSbResponseBody
LOCAL loJsonResponse
lnSuccess = 0
* This example does the following:
* curl -X GET https://yourInstance.salesforce.com/services/oauth2/userinfo \
* -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
loHttp = CreateObject('Chilkat.Http')
* Use the following online tool to generate HTTP code from a CURL command
* Convert a cURL Command to HTTP Source Code
* This example assumes the OAuth2 access token was previously fetched
* and saved to a file. See Get SalesForce OAuth2 Access Token via Authorization Flow
loJson = CreateObject('Chilkat.JsonObject')
lnSuccess = loJson.LoadFile("qa_data/tokens/_salesforce.json")
IF (lnSuccess = 0) THEN
? "Failed to load OAuth2 access token."
RELEASE loHttp
RELEASE loJson
CANCEL
ENDIF
* Here's an example of the JSON:
* {
* "access_token": "00D41000....uLZBpT6",
* "refresh_token": "5Aep....25xdGgkrV",
* "signature": "cjTbSc5DvcKpaMoRTzuQTJLb1tcMw8LEO01flq4aMD4=",
* "scope": "refresh_token id",
* "instance_url": "https://d41000000f8a0eak-dev-ed.my.salesforce.com",
* "id": "https://login.salesforce.com/id/00D41000000F8A0EAK/005410000....xAAE",
* "token_type": "Bearer",
* "issued_at": "1738348388166"
* }
* Adds the "Authorization: Bearer YOUR_ACCESS_TOKEN" header.
loHttp.AuthToken = loJson.StringOf("access_token")
* We want to build the following URL: https://<instance_id>.salesforce.com/services/oauth2/userinfo
loSbUrl = CreateObject('Chilkat.StringBuilder')
loSbUrl.Append(loJson.StringOf("instance_url"))
loSbUrl.Append("/services/oauth2/userinfo")
loSbResponseBody = CreateObject('Chilkat.StringBuilder')
lnSuccess = loHttp.QuickGetSb(loSbUrl.GetAsString(),loSbResponseBody)
IF (lnSuccess = 0) THEN
? loHttp.LastErrorText
RELEASE loHttp
RELEASE loJson
RELEASE loSbUrl
RELEASE loSbResponseBody
CANCEL
ENDIF
? "Response status code = " + STR(loHttp.LastStatus)
loJsonResponse = CreateObject('Chilkat.JsonObject')
loJsonResponse.LoadSb(loSbResponseBody)
loJsonResponse.EmitCompact = 0
? loJsonResponse.Emit()
* The expected JSON response is something like this:
* {
* "sub": "005xxxxxxxxxxxx",
* "name": "John Doe",
* "preferred_username": "johndoe@example.com",
* "email": "johndoe@example.com",
* "profile": "https://na85.salesforce.com/005xxxxxxxxxxxx"
* ...
* ...
* }
RELEASE loHttp
RELEASE loJson
RELEASE loSbUrl
RELEASE loSbResponseBody
RELEASE loJsonResponse