Lua
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- This example does the following:
-- curl -X GET https://yourInstance.salesforce.com/services/oauth2/userinfo \
-- -H "Authorization: Bearer YOUR_ACCESS_TOKEN"
local http = chilkat.Http.new()
-- 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
local json = chilkat.JsonObject.new()
local success = json:load_file("qa_data/tokens/_salesforce.json")
if not success then
print("Failed to load OAuth2 access token.")
return
end
-- 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.
http.auth_token = json:string_of("access_token")
-- We want to build the following URL: https://<instance_id>.salesforce.com/services/oauth2/userinfo
local sbUrl = chilkat.StringBuilder.new()
sbUrl:append(json:string_of("instance_url"))
sbUrl:append("/services/oauth2/userinfo")
local sbResponseBody = chilkat.StringBuilder.new()
success = http:quick_get_sb(sbUrl:get_as_string(), sbResponseBody)
if not success then
print(http.last_error_text)
return
end
print("Response status code = " .. http.last_status)
local jsonResponse = chilkat.JsonObject.new()
jsonResponse:load_sb(sbResponseBody)
jsonResponse.emit_compact = false
print(jsonResponse: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"
-- ...
-- ...
-- }