Chilkat Online Tools

DataFlex / Salesforce Platform APIs / User Info

Back to Collection Items

Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    String sV_sub
    String sUser_id
    String sOrganization_id
    String sPreferred_username
    String sNickname
    String sName
    String sEmail
    Boolean iEmail_verified
    String sGiven_name
    String sFamily_name
    String sZoneinfo
    String sPicture
    String sThumbnail
    String sProfile
    String sPicture
    String sCountry
    Boolean iIs_salesforce_integration_user
    String sEnterprise
    String sMetadata
    String sPartner
    String sV_Rest
    String sSobjects
    String sSearch
    String sQuery
    String sRecent
    String sTooling_soap
    String sTooling_rest
    String sProfile
    String sFeeds
    String sGroups
    String sUsers
    String sFeed_items
    String sFeed_elements
    String sCustom_domain
    Boolean iActive
    String sUser_type
    String sLanguage
    String sLocale
    Integer iUtcOffset
    String sUpdated_at
    Boolean iIs_app_installed
    String sTemp1

    // 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

    Send ComSetRequestHeader To hoHttp "Content-Type" "application/json"

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComQuickGetSb Of hoHttp "https://login.salesforce.com{{site}}/services/oauth2/userinfo" vSbResponseBody To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    Get ComLastStatus Of hoHttp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComLastHeader Of hoHttp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Procedure_Return
    End

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

    // {
    //   "sub": "https://login.salesforce.com/id/00D.../005...",
    //   "user_id": "005...",
    //   "organization_id": "00D...",
    //   "preferred_username": "<username>",
    //   "nickname": "<nickname>",
    //   "name": "<name>",
    //   "email": "<email>",
    //   "email_verified": true,
    //   "given_name": "<name>",
    //   "family_name": "<name>",
    //   "zoneinfo": "Europe/Paris",
    //   "photos": {
    //     "picture": "https://<file_domain>/profilephoto/005/F",
    //     "thumbnail": "https://<file_domain>/profilephoto/005/T"
    //   },
    //   "profile": "https://<my_domain>/005",
    //   "picture": "https://<file_domain>/profilephoto/005/F",
    //   "address": {
    //     "country": "FR"
    //   },
    //   "is_salesforce_integration_user": false,
    //   "urls": {
    //     "enterprise": "https://<my_domain>/services/Soap/c/{version}/00D...",
    //     "metadata": "https://<my_domain>/services/Soap/m/{version}/00D...",
    //     "partner": "https://<my_domain>/services/Soap/u/{version}/00D...",
    //     "rest": "https://<my_domain>/services/data/v{version}/",
    //     "sobjects": "https://<my_domain>/services/data/v{version}/sobjects/",
    //     "search": "https://<my_domain>/services/data/v{version}/search/",
    //     "query": "https://<my_domain>/services/data/v{version}/query/",
    //     "recent": "https://<my_domain>/services/data/v{version}/recent/",
    //     "tooling_soap": "https://<my_domain>/services/Soap/T/{version}/00D...",
    //     "tooling_rest": "https://<my_domain>/services/data/v{version}/tooling/",
    //     "profile": "https://<my_domain>/0052o00000DOJ1PAAX",
    //     "feeds": "https://<my_domain>/services/data/v{version}/chatter/feeds",
    //     "groups": "https://<my_domain>/services/data/v{version}/chatter/groups",
    //     "users": "https://<my_domain>/services/data/v{version}/chatter/users",
    //     "feed_items": "https://<my_domain>/services/data/v{version}/chatter/feed-items",
    //     "feed_elements": "https://<my_domain>/services/data/v{version}/chatter/feed-elements",
    //     "custom_domain": "https://<my_domain>"
    //   },
    //   "active": true,
    //   "user_type": "STANDARD",
    //   "language": "en_US",
    //   "locale": "fr_FR_EURO",
    //   "utcOffset": 3600000,
    //   "updated_at": "<datetime>",
    //   "is_app_installed": true
    // }

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

    Get ComStringOf Of hoJResp "sub" To sV_sub
    Get ComStringOf Of hoJResp "user_id" To sUser_id
    Get ComStringOf Of hoJResp "organization_id" To sOrganization_id
    Get ComStringOf Of hoJResp "preferred_username" To sPreferred_username
    Get ComStringOf Of hoJResp "nickname" To sNickname
    Get ComStringOf Of hoJResp "name" To sName
    Get ComStringOf Of hoJResp "email" To sEmail
    Get ComBoolOf Of hoJResp "email_verified" To iEmail_verified
    Get ComStringOf Of hoJResp "given_name" To sGiven_name
    Get ComStringOf Of hoJResp "family_name" To sFamily_name
    Get ComStringOf Of hoJResp "zoneinfo" To sZoneinfo
    Get ComStringOf Of hoJResp "photos.picture" To sPicture
    Get ComStringOf Of hoJResp "photos.thumbnail" To sThumbnail
    Get ComStringOf Of hoJResp "profile" To sProfile
    Get ComStringOf Of hoJResp "picture" To sPicture
    Get ComStringOf Of hoJResp "address.country" To sCountry
    Get ComBoolOf Of hoJResp "is_salesforce_integration_user" To iIs_salesforce_integration_user
    Get ComStringOf Of hoJResp "urls.enterprise" To sEnterprise
    Get ComStringOf Of hoJResp "urls.metadata" To sMetadata
    Get ComStringOf Of hoJResp "urls.partner" To sPartner
    Get ComStringOf Of hoJResp "urls.rest" To sV_Rest
    Get ComStringOf Of hoJResp "urls.sobjects" To sSobjects
    Get ComStringOf Of hoJResp "urls.search" To sSearch
    Get ComStringOf Of hoJResp "urls.query" To sQuery
    Get ComStringOf Of hoJResp "urls.recent" To sRecent
    Get ComStringOf Of hoJResp "urls.tooling_soap" To sTooling_soap
    Get ComStringOf Of hoJResp "urls.tooling_rest" To sTooling_rest
    Get ComStringOf Of hoJResp "urls.profile" To sProfile
    Get ComStringOf Of hoJResp "urls.feeds" To sFeeds
    Get ComStringOf Of hoJResp "urls.groups" To sGroups
    Get ComStringOf Of hoJResp "urls.users" To sUsers
    Get ComStringOf Of hoJResp "urls.feed_items" To sFeed_items
    Get ComStringOf Of hoJResp "urls.feed_elements" To sFeed_elements
    Get ComStringOf Of hoJResp "urls.custom_domain" To sCustom_domain
    Get ComBoolOf Of hoJResp "active" To iActive
    Get ComStringOf Of hoJResp "user_type" To sUser_type
    Get ComStringOf Of hoJResp "language" To sLanguage
    Get ComStringOf Of hoJResp "locale" To sLocale
    Get ComIntOf Of hoJResp "utcOffset" To iUtcOffset
    Get ComStringOf Of hoJResp "updated_at" To sUpdated_at
    Get ComBoolOf Of hoJResp "is_app_installed" To iIs_app_installed


End_Procedure

Curl Command

curl -X GET
	-H "Content-Type: application/json"
https://login.salesforce.com{{site}}/services/oauth2/userinfo

Postman Collection Item JSON

{
  "name": "User Info",
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json"
      }
    ],
    "url": {
      "raw": "{{url}}{{site}}/services/oauth2/userinfo",
      "host": [
        "{{url}}{{site}}"
      ],
      "path": [
        "services",
        "oauth2",
        "userinfo"
      ]
    }
  },
  "response": [
    {
      "name": "Successful User Info",
      "originalRequest": {
        "method": "GET",
        "header": [
          {
            "key": "Content-Type",
            "value": "application/json"
          }
        ],
        "url": {
          "raw": "{{url}}{{site}}/services/oauth2/userinfo",
          "host": [
            "{{url}}{{site}}"
          ],
          "path": [
            "services",
            "oauth2",
            "userinfo"
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Thu, 16 Nov 2023 15:35:50 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    \"sub\": \"https://login.salesforce.com/id/00D.../005...\",\n    \"user_id\": \"005...\",\n    \"organization_id\": \"00D...\",\n    \"preferred_username\": \"<username>\",\n    \"nickname\": \"<nickname>\",\n    \"name\": \"<name>\",\n    \"email\": \"<email>\",\n    \"email_verified\": true,\n    \"given_name\": \"<name>\",\n    \"family_name\": \"<name>\",\n    \"zoneinfo\": \"Europe/Paris\",\n    \"photos\": {\n        \"picture\": \"https://<file_domain>/profilephoto/005/F\",\n        \"thumbnail\": \"https://<file_domain>/profilephoto/005/T\"\n    },\n    \"profile\": \"https://<my_domain>/005\",\n    \"picture\": \"https://<file_domain>/profilephoto/005/F\",\n    \"address\": {\n        \"country\": \"FR\"\n    },\n    \"is_salesforce_integration_user\": false,\n    \"urls\": {\n        \"enterprise\": \"https://<my_domain>/services/Soap/c/{version}/00D...\",\n        \"metadata\": \"https://<my_domain>/services/Soap/m/{version}/00D...\",\n        \"partner\": \"https://<my_domain>/services/Soap/u/{version}/00D...\",\n        \"rest\": \"https://<my_domain>/services/data/v{version}/\",\n        \"sobjects\": \"https://<my_domain>/services/data/v{version}/sobjects/\",\n        \"search\": \"https://<my_domain>/services/data/v{version}/search/\",\n        \"query\": \"https://<my_domain>/services/data/v{version}/query/\",\n        \"recent\": \"https://<my_domain>/services/data/v{version}/recent/\",\n        \"tooling_soap\": \"https://<my_domain>/services/Soap/T/{version}/00D...\",\n        \"tooling_rest\": \"https://<my_domain>/services/data/v{version}/tooling/\",\n        \"profile\": \"https://<my_domain>/0052o00000DOJ1PAAX\",\n        \"feeds\": \"https://<my_domain>/services/data/v{version}/chatter/feeds\",\n        \"groups\": \"https://<my_domain>/services/data/v{version}/chatter/groups\",\n        \"users\": \"https://<my_domain>/services/data/v{version}/chatter/users\",\n        \"feed_items\": \"https://<my_domain>/services/data/v{version}/chatter/feed-items\",\n        \"feed_elements\": \"https://<my_domain>/services/data/v{version}/chatter/feed-elements\",\n        \"custom_domain\": \"https://<my_domain>\"\n    },\n    \"active\": true,\n    \"user_type\": \"STANDARD\",\n    \"language\": \"en_US\",\n    \"locale\": \"fr_FR_EURO\",\n    \"utcOffset\": 3600000,\n    \"updated_at\": \"<datetime>\",\n    \"is_app_installed\": true\n}"
    }
  ]
}