Chilkat Online Tools

ERROR!

------------------- GenerateCode ----------------------
ImpliedContentType: 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;
call req.AddParam("code","<code>");
call req.AddParam("grant_type","authorization_code");

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

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


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

println resp.StatusCode;
println resp.BodyStr;

---- end chilkat script ----

DataFlex / Salesforce Platform APIs / Registration - Token Exchange

Back to Collection Items

Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Handle hoReq
    Handle hoJsonParam3
    Handle hoJsonParam4
    Handle hoResp
    String sTemp1
    Integer iTemp1

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

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    Get Create (RefClass(cComChilkatHttpRequest)) To hoReq
    If (Not(IsComObjectCreated(hoReq))) Begin
        Send CreateComObject of hoReq
    End
    Send ComAddParam To hoReq "code" "<code>"
    Send ComAddParam To hoReq "grant_type" "authorization_code"

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonParam3
    If (Not(IsComObjectCreated(hoJsonParam3))) Begin
        Send CreateComObject of hoJsonParam3
    End
    Get ComEmit Of hoJsonParam3 To sTemp1
    Send ComAddParam To hoReq "client_id" sTemp1

    Get Create (RefClass(cComChilkatJsonObject)) To hoJsonParam4
    If (Not(IsComObjectCreated(hoJsonParam4))) Begin
        Send CreateComObject of hoJsonParam4
    End
    Get ComEmit Of hoJsonParam4 To sTemp1
    Send ComAddParam To hoReq "redirect_uri" sTemp1

    Get Create (RefClass(cComChilkatHttpResponse)) To hoResp
    If (Not(IsComObjectCreated(hoResp))) Begin
        Send CreateComObject of hoResp
    End
    Set ComHttpVerb Of hoReq To "POST"
    Set ComContentType Of hoReq To "application/x-www-form-urlencoded"
ERROR: Assignment type mismatch.  ExpressionType=HttpResponse, atgType=ckbool

    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get ComStatusCode Of hoResp To iTemp1
    Showln iTemp1
    Get ComBodyStr Of hoResp To sTemp1
    Showln sTemp1


End_Procedure

Curl Command

curl -X POST
	--data-urlencode 'code=<code>'
	--data-urlencode 'grant_type=authorization_code'
	--data-urlencode 'client_id={{clientId}}'
	--data-urlencode 'redirect_uri={{redirectUrl}}'
https://login.salesforce.com{{site}}/services/oauth2/token

Postman Collection Item JSON

{
  "name": "Registration - Token Exchange",
  "request": {
    "auth": {
      "type": "noauth"
    },
    "method": "POST",
    "header": [
    ],
    "body": {
      "mode": "urlencoded",
      "urlencoded": [
        {
          "key": "code",
          "value": "<code>",
          "description": "Auth Code from the Authorize response",
          "type": "text"
        },
        {
          "key": "grant_type",
          "value": "authorization_code",
          "type": "text"
        },
        {
          "key": "client_id",
          "value": "{{clientId}}",
          "type": "text"
        },
        {
          "key": "redirect_uri",
          "value": "{{redirectUrl}}",
          "type": "text"
        }
      ]
    },
    "url": {
      "raw": "{{url}}{{site}}/services/oauth2/token",
      "host": [
        "{{url}}{{site}}"
      ],
      "path": [
        "services",
        "oauth2",
        "token"
      ]
    },
    "description": "This exchanges the auth code returned in the Authorize Request for an access token and refresh token. This follows the standard Auth Code flow/Webserver Code Flow pattern. The Code is the return form the Authorization call."
  },
  "response": [
  ]
}