Sample code for 30+ languages & platforms
AutoIt

Populi Search People

See more Populi Examples

Demonstrates the Populi searchPeople task.

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.

;  First load the previously obtained API token.
;  See Get Populi Access Token for sample code showing how to get the API token.
$oXml = ObjCreate("Chilkat.Xml")
$bSuccess = $oXml.LoadXmlFile("qa_data/tokens/populi_token.xml")
Local $sAccessKey = $oXml.GetChildContent("access_key")
If ($oXml.LastMethodSuccess <> True) Then
    ConsoleWrite("Did not find the access_key" & @CRLF)
    Exit
EndIf

$oRest = ObjCreate("Chilkat.Rest")

;  Connect using TLS.
;  A single REST object, once connected, can be used for many Populi REST API calls.
;  The auto-reconnect indicates that if the already-established HTTPS connection is closed,
;  then it will be automatically re-established as needed.
Local $bAutoReconnect = True
$bSuccess = $oRest.Connect("yourcollege.populi.co",443,True,$bAutoReconnect)
If ($bSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

$oRest.Authorization = $sAccessKey

$oRest.AddQueryParam("task","searchPeople")
$oRest.AddQueryParam("search_term","Robert")
$oRest.AddQueryParam("limit","10")

Local $sResponseBody = $oRest.FullRequestFormUrlEncoded("POST","/api/index.php")
If ($oRest.LastMethodSuccess <> True) Then
    ConsoleWrite($oRest.LastErrorText & @CRLF)
    Exit
EndIf

;  We should expect a 200 response if successful.
If ($oRest.ResponseStatusCode <> 200) Then
    ConsoleWrite("Request Header: " & @CRLF)
    ConsoleWrite($oRest.LastRequestHeader & @CRLF)
    ConsoleWrite("----" & @CRLF)
    ConsoleWrite("Response StatusCode = " & $oRest.ResponseStatusCode & @CRLF)
    ConsoleWrite("Response StatusLine: " & $oRest.ResponseStatusText & @CRLF)
    ConsoleWrite("Response Header:" & @CRLF)
    ConsoleWrite($oRest.ResponseHeader & @CRLF)
    ConsoleWrite("Response Body:" & @CRLF)
    ConsoleWrite($sResponseBody & @CRLF)
    Exit
EndIf

$oXml.LoadXml($sResponseBody)
ConsoleWrite($oXml.GetXml() & @CRLF)

;  Sample response:
;  Use this online tool to generate parsing code from sample XML: 
;  Generate Parsing Code from XML

;  <?xml version="1.0" encoding="UTF-8"?>
;   <response>
;  	<person>
;  		<id>11111</id>
;  		<first_name>Robert</first_name>
;  		<last_name>McStudent</last_name>
;  		<middle_name>Kensington</middle_name>
;  		<preferred_name>Bobby</preferred_name>
;  		<is_user>1</is_user>
;  		<primary_email>r.mcstudent@myschool.edu</primary_email>
;  	</person>
;  	<person>
;  		<id>2222</id>
;  		<first_name>Robert</first_name>
;  		<last_name>McBoardmember</last_name>
;  		<middle_name/>
;  		<preferred_name/>
;  		<is_user>0</is_user>
;  		<primary_email>robert@gmail.com</primary_email>
;  	</person>
;  </response>

Local $i
Local $iCount_i
Local $id
Local $sFirst_name
Local $sLast_name
Local $sMiddle_name
Local $sPreferred_name
Local $is_user
Local $sPrimary_email

$i = 0
$iCount_i = $oXml.NumChildrenHavingTag("person")
While $i < $iCount_i
    $oXml.I = $i
    $id = $oXml.GetChildIntValue("person[i]|id")
    $sFirst_name = $oXml.GetChildContent("person[i]|first_name")
    $sLast_name = $oXml.GetChildContent("person[i]|last_name")
    $sMiddle_name = $oXml.GetChildContent("person[i]|middle_name")
    $sPreferred_name = $oXml.GetChildContent("person[i]|preferred_name")
    $is_user = $oXml.GetChildIntValue("person[i]|is_user")
    $sPrimary_email = $oXml.GetChildContent("person[i]|primary_email")
    $i = $i + 1
Wend