Tcl
Tcl
MedTunnel: Login User
See more MedTunnel Examples
Authenticate and create a session for the User. This gets a user token to be used in the Authorization header for other API calls.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set http [new_CkHttp]
# Implements the following CURL command:
# curl -X PUT -k
# -H "Content-Type: application/json"
# -d '{ "MedTunnelId":"yourMedTunnelId@yourGroup",
# "Password":"yourPassword",
# "ApplicationId":"yourApplicationId",
# "LocationId":"yourLocationId",
# "ExpirationInMinutes":"50"
# }'
# https://server.medtunnel.com/MedTunnelSvc/api/Authenticate/LoginUser
# Use the following online tool to generate HTTP code from a CURL command
# Convert a cURL Command to HTTP Source Code
# Use this online tool to generate code from sample JSON:
# Generate Code to Create JSON
# The following JSON is sent in the request body.
# {
# "MedTunnelId": "yourMedTunnelId@yourGroup",
# "Password": "yourPassword",
# "ApplicationId": "yourApplicationId",
# "LocationId": "yourLocationId",
# "ExpirationInMinutes": "50"
# }
set json [new_CkJsonObject]
CkJsonObject_UpdateString $json "MedTunnelId" "yourMedTunnelId@yourGroup"
CkJsonObject_UpdateString $json "Password" "yourPassword"
CkJsonObject_UpdateString $json "ApplicationId" "yourApplicationId"
CkJsonObject_UpdateString $json "LocationId" "yourLocationId"
CkJsonObject_UpdateString $json "ExpirationInMinutes" "50"
CkHttp_SetRequestHeader $http "Content-Type" "application/json"
set sbRequestBody [new_CkStringBuilder]
CkJsonObject_EmitSb $json $sbRequestBody
set resp [new_CkHttpResponse]
set success [CkHttp_HttpSb $http "PUT" "https://server.medtunnel.com/MedTunnelSvc/api/Authenticate/LoginUser" $sbRequestBody "utf-8" "application/json" $resp]
if {$success == 0} then {
puts [CkHttp_lastErrorText $http]
delete_CkHttp $http
delete_CkJsonObject $json
delete_CkStringBuilder $sbRequestBody
delete_CkHttpResponse $resp
exit
}
set sbResponseBody [new_CkStringBuilder]
CkHttpResponse_GetBodySb $resp $sbResponseBody
set jResp [new_CkJsonObject]
CkJsonObject_LoadSb $jResp $sbResponseBody
CkJsonObject_put_EmitCompact $jResp 0
puts "Response Body:"
puts [CkJsonObject_emit $jResp]
set respStatusCode [CkHttpResponse_get_StatusCode $resp]
puts "Response Status Code = $respStatusCode"
if {$respStatusCode >= 400} then {
puts "Response Header:"
puts [CkHttpResponse_header $resp]
puts "Failed."
delete_CkHttp $http
delete_CkJsonObject $json
delete_CkStringBuilder $sbRequestBody
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
exit
}
# Sample JSON response:
# (Sample code for parsing the JSON response is shown below)
# {
# "ReturnCode": 1,
# "ReturnCodeText": "Success",
# "Data": "{\"UserId\":36990,\"UserTypeId\":1, ... \"UserRole\":\"Account Admin\"}"
# }
# Sample code for parsing the JSON response...
# Use the following online tool to generate parsing code from sample JSON:
# Generate Parsing Code from JSON
set ReturnCode [CkJsonObject_IntOf $jResp "ReturnCode"]
set ReturnCodeText [CkJsonObject_stringOf $jResp "ReturnCodeText"]
set Data [CkJsonObject_stringOf $jResp "Data"]
# Load the Data into another JSON object and parse..
set jsonData [new_CkJsonObject]
CkJsonObject_Load $jsonData $Data
CkJsonObject_put_EmitCompact $jsonData 0
puts [CkJsonObject_emit $jsonData]
# Sample result.
# {
# "UserId": 36990,
# "UserTypeId": 1,
# "UserTypeDesc": "Single Provider",
# "Token": "MT 730DCA95-2B86-4A91-994E-99995B1A6FC1:9999952A-C6DA-4FB5-83D6-9999E880B4A2:50:/hc3CTWCS0kNMxZXTWR4NQ==:tev2vAToTCrnuyT6rxyCgQ==:sAYcvgPoIfaaCF0+gdeSD1GFcYk=",
# "MailboxId": 36965,
# "UserRole": "Account Admin"
# }
set token [CkJsonObject_stringOf $jsonData "Token"]
puts "Token: $token"
delete_CkHttp $http
delete_CkJsonObject $json
delete_CkStringBuilder $sbRequestBody
delete_CkHttpResponse $resp
delete_CkStringBuilder $sbResponseBody
delete_CkJsonObject $jResp
delete_CkJsonObject $jsonData