Chilkat Online Tools

ERROR!

------------------- GenerateCode ----------------------
ImpliedContentType: application/x-www-form-urlencoded
explicitContentType: application/x-www-form-urlencoded
---- begin chilkat script ----
// This example assumes the Chilkat API to have been previously unlocked.
// See {{-global_unlock:::Global Unlock Sample-}} for sample code.

new Http http;
ckbool success;

new HttpRequest req;

new JsonObject jsonParam1;
call req.AddParam("token",jsonParam1.Emit());
call req.AddParam("token_type_hint","access_token");

new JsonObject jsonParam3;
call req.AddParam("client_id",jsonParam3.Emit());

new JsonObject jsonParam4;
call req.AddParam("client_secret",jsonParam4.Emit());

call req.AddHeader("Accept","application/json");

new HttpResponse resp;
req.HttpVerb = "POST";
req.ContentType = "application/x-www-form-urlencoded";
success = http.PostUrlEncoded("https://login.salesforce.com{{site}}/services/oauth2/introspect", req,resp);
if (success == ckfalse) {
println http.LastErrorText;
return;
}

new StringBuilder sbResponseBody;
ignore = resp.GetBodySb(sbResponseBody);

new JsonObject jResp;
call jResp.LoadSb(sbResponseBody);
jResp.EmitCompact = ckfalse;

println "Response Body:";
println jResp.Emit();

int respStatusCode = resp.StatusCode;
println "Response Status Code = ",respStatusCode;
if (respStatusCode >= 400) {
    println "Response Header:";
    println resp.Header;
    println "Failed.";
    return;
}

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// {
//   "active": true,
//   "scope": "<scope_list>",
//   "client_id": "<client_id>",
//   "username": "<username>",
//   "sub": "https://login.salesforce.com/id/00D.../005...",
//   "token_type": "access_token",
//   "exp": <timestamp>,
//   "iat": <timestamp>,
//   "nbf": <timestamp>
// }

// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: {{.https://tools.chilkat.io/jsonParse|||Generate JSON Parsing Code.}}

#ifdef IS_C_CPP
// Chilkat functions returning "const char *" return a pointer to temporary internal memory owned and managed by Chilkat.
#undef IS_C_CPP


ckbool active = jResp.BoolOf("active");
string scope = jResp.StringOf("scope");
string client_id = jResp.StringOf("client_id");
string username = jResp.StringOf("username");
string v_sub = jResp.StringOf("sub");
string token_type = jResp.StringOf("token_type");
int exp = jResp.IntOf("exp");
int iat = jResp.IntOf("iat");
int nbf = jResp.IntOf("nbf");



---- end chilkat script ----

Foxpro / Salesforce Platform APIs / OpenID Connect Token Introspection Endpoint

Back to Collection Items

LOCAL loHttp
LOCAL lnSuccess
LOCAL loReq
LOCAL loJsonParam1
LOCAL loJsonParam3
LOCAL loJsonParam4
LOCAL loResp
LOCAL loSbResponseBody
LOCAL loJResp
LOCAL lnRespStatusCode
LOCAL lnActive
LOCAL lcScope
LOCAL lcClient_id
LOCAL lcUsername
LOCAL lcV_sub
LOCAL lcToken_type
LOCAL lnExp
LOCAL lnIat
LOCAL lnNbf

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

loHttp = CreateObject('Chilkat.Http')

loReq = CreateObject('Chilkat.HttpRequest')

loJsonParam1 = CreateObject('Chilkat.JsonObject')
loReq.AddParam("token",loJsonParam1.Emit())
loReq.AddParam("token_type_hint","access_token")

loJsonParam3 = CreateObject('Chilkat.JsonObject')
loReq.AddParam("client_id",loJsonParam3.Emit())

loJsonParam4 = CreateObject('Chilkat.JsonObject')
loReq.AddParam("client_secret",loJsonParam4.Emit())

loReq.AddHeader("Accept","application/json")

loResp = CreateObject('Chilkat.HttpResponse')
loReq.HttpVerb = "POST"
loReq.ContentType = "application/x-www-form-urlencoded"
ERROR: Assignment type mismatch.  ExpressionType=HttpResponse, atgType=ckbool

IF (lnSuccess = 0) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    RELEASE loReq
    RELEASE loJsonParam1
    RELEASE loJsonParam3
    RELEASE loJsonParam4
    RELEASE loResp
    CANCEL
ENDIF

loSbResponseBody = CreateObject('Chilkat.StringBuilder')
loResp.GetBodySb(loSbResponseBody)

loJResp = CreateObject('Chilkat.JsonObject')
loJResp.LoadSb(loSbResponseBody)
loJResp.EmitCompact = 0

? "Response Body:"
? loJResp.Emit()

lnRespStatusCode = loResp.StatusCode
? "Response Status Code = " + STR(lnRespStatusCode)
IF (lnRespStatusCode >= 400) THEN
    ? "Response Header:"
    ? loResp.Header
    ? "Failed."
    RELEASE loHttp
    RELEASE loReq
    RELEASE loJsonParam1
    RELEASE loJsonParam3
    RELEASE loJsonParam4
    RELEASE loResp
    RELEASE loSbResponseBody
    RELEASE loJResp
    CANCEL
ENDIF

* Sample JSON response:
* (Sample code for parsing the JSON response is shown below)

* {
*   "active": true,
*   "scope": "<scope_list>",
*   "client_id": "<client_id>",
*   "username": "<username>",
*   "sub": "https://login.salesforce.com/id/00D.../005...",
*   "token_type": "access_token",
*   "exp": <timestamp>,
*   "iat": <timestamp>,
*   "nbf": <timestamp>
* }

* Sample code for parsing the JSON response...
* Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

lnActive = loJResp.BoolOf("active")
lcScope = loJResp.StringOf("scope")
lcClient_id = loJResp.StringOf("client_id")
lcUsername = loJResp.StringOf("username")
lcV_sub = loJResp.StringOf("sub")
lcToken_type = loJResp.StringOf("token_type")
lnExp = loJResp.IntOf("exp")
lnIat = loJResp.IntOf("iat")
lnNbf = loJResp.IntOf("nbf")

RELEASE loHttp
RELEASE loReq
RELEASE loJsonParam1
RELEASE loJsonParam3
RELEASE loJsonParam4
RELEASE loResp
RELEASE loSbResponseBody
RELEASE loJResp

Curl Command

curl -X POST
	-H "Content-Type: application/x-www-form-urlencoded"
	-H "Accept: application/json"
	--data-urlencode 'token={{_accessToken}}'
	--data-urlencode 'token_type_hint=access_token'
	--data-urlencode 'client_id={{clientId}}'
	--data-urlencode 'client_secret={{clientSecret}}'
https://login.salesforce.com{{site}}/services/oauth2/introspect

Postman Collection Item JSON

{
  "name": "OpenID Connect Token Introspection Endpoint",
  "request": {
    "auth": {
      "type": "noauth"
    },
    "method": "POST",
    "header": [
      {
        "key": "Content-Type",
        "name": "Content-Type",
        "value": "application/x-www-form-urlencoded",
        "type": "text"
      },
      {
        "key": "Accept",
        "value": "application/json",
        "type": "text"
      }
    ],
    "body": {
      "mode": "urlencoded",
      "urlencoded": [
        {
          "key": "token",
          "value": "{{_accessToken}}",
          "type": "text"
        },
        {
          "key": "token_type_hint",
          "value": "access_token",
          "type": "text"
        },
        {
          "key": "client_id",
          "value": "{{clientId}}",
          "type": "text"
        },
        {
          "key": "client_secret",
          "value": "{{clientSecret}}",
          "type": "text"
        }
      ]
    },
    "url": {
      "raw": "{{url}}{{site}}/services/oauth2/introspect",
      "host": [
        "{{url}}{{site}}"
      ],
      "path": [
        "services",
        "oauth2",
        "introspect"
      ]
    }
  },
  "response": [
    {
      "name": "Successful OpenID Connect Token Introspection Endpoint",
      "originalRequest": {
        "method": "POST",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/x-www-form-urlencoded"
          },
          {
            "key": "Accept",
            "value": "application/json"
          }
        ],
        "body": {
          "mode": "urlencoded",
          "urlencoded": [
            {
              "key": "token",
              "value": "{{_accessToken}}",
              "type": "text"
            },
            {
              "key": "token_type_hint",
              "value": "access_token",
              "type": "text"
            },
            {
              "key": "client_id",
              "value": "{{clientId}}",
              "type": "text"
            },
            {
              "key": "client_secret",
              "value": "{{clientSecret}}",
              "type": "text"
            }
          ]
        },
        "url": {
          "raw": "{{url}}{{site}}/services/oauth2/introspect",
          "host": [
            "{{url}}{{site}}"
          ],
          "path": [
            "services",
            "oauth2",
            "introspect"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Thu, 16 Nov 2023 15:54:42 GMT"
        },
        {
          "key": "Strict-Transport-Security",
          "value": "max-age=63072000; includeSubDomains"
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff"
        },
        {
          "key": "X-XSS-Protection",
          "value": "1; mode=block"
        },
        {
          "key": "X-Robots-Tag",
          "value": "none"
        },
        {
          "key": "Cache-Control",
          "value": "no-cache,must-revalidate,max-age=0,no-store,private"
        },
        {
          "key": "Content-Type",
          "value": "application/json;charset=UTF-8"
        },
        {
          "key": "Vary",
          "value": "Accept-Encoding"
        },
        {
          "key": "Content-Encoding",
          "value": "gzip"
        },
        {
          "key": "Transfer-Encoding",
          "value": "chunked"
        }
      ],
      "cookie": [
      ],
      "body": "{\n    \"active\": true,\n    \"scope\": \"<scope_list>\",\n    \"client_id\": \"<client_id>\",\n    \"username\": \"<username>\",\n    \"sub\": \"https://login.salesforce.com/id/00D.../005...\",\n    \"token_type\": \"access_token\",\n    \"exp\": <timestamp>,\n    \"iat\": <timestamp>,\n    \"nbf\": <timestamp>\n}"
    }
  ]
}