Sample code for 30+ languages & platforms
AutoIt

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 AutoIt Downloads

AutoIt
Local $bSuccess = False

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

$oHttp = ObjCreate("Chilkat.Http")

; 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"
; }

$oJson = ObjCreate("Chilkat.JsonObject")
$oJson.UpdateString("MedTunnelId","yourMedTunnelId@yourGroup")
$oJson.UpdateString("Password","yourPassword")
$oJson.UpdateString("ApplicationId","yourApplicationId")
$oJson.UpdateString("LocationId","yourLocationId")
$oJson.UpdateString("ExpirationInMinutes","50")

$oHttp.SetRequestHeader "Content-Type","application/json"

$oSbRequestBody = ObjCreate("Chilkat.StringBuilder")
$oJson.EmitSb($oSbRequestBody)

$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpSb("PUT","https://server.medtunnel.com/MedTunnelSvc/api/Authenticate/LoginUser",$oSbRequestBody,"utf-8","application/json",$oResp)
If ($bSuccess = False) Then
    ConsoleWrite($oHttp.LastErrorText & @CRLF)
    Exit
EndIf

$oSbResponseBody = ObjCreate("Chilkat.StringBuilder")
$oResp.GetBodySb($oSbResponseBody)
$oJResp = ObjCreate("Chilkat.JsonObject")
$oJResp.LoadSb($oSbResponseBody)
$oJResp.EmitCompact = False

ConsoleWrite("Response Body:" & @CRLF)
ConsoleWrite($oJResp.Emit() & @CRLF)

Local $iRespStatusCode = $oResp.StatusCode
ConsoleWrite("Response Status Code = " & $iRespStatusCode & @CRLF)
If ($iRespStatusCode >= 400) Then
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oResp.Header & @CRLF)
    ConsoleWrite("Failed." & @CRLF)
    Exit
EndIf

; 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

Local $iReturnCode = $oJResp.IntOf("ReturnCode")
Local $sReturnCodeText = $oJResp.StringOf("ReturnCodeText")
Local $sData = $oJResp.StringOf("Data")

; Load the Data into another JSON object and parse..
$oJsonData = ObjCreate("Chilkat.JsonObject")
$oJsonData.Load($sData)
$oJsonData.EmitCompact = False
ConsoleWrite($oJsonData.Emit() & @CRLF)

; 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"
; }

Local $sToken = $oJsonData.StringOf("Token")
ConsoleWrite("Token: " & $sToken & @CRLF)