PowerShell
PowerShell
Populi Get Roles
See more Populi Examples
Demonstrates the Populi getRoles task.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $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.
$xml = New-Object Chilkat.Xml
$success = $xml.LoadXmlFile("qa_data/tokens/populi_token.xml")
$accessKey = $xml.GetChildContent("access_key")
if ($xml.LastMethodSuccess -ne $true) {
$("Did not find the access_key")
exit
}
$rest = New-Object 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.
$bAutoReconnect = $true
$success = $rest.Connect("yourcollege.populi.co",443,$true,$bAutoReconnect)
if ($success -ne $true) {
$($rest.LastErrorText)
exit
}
$rest.Authorization = $accessKey
$rest.AddQueryParam("task","getRoles")
$responseBody = $rest.FullRequestFormUrlEncoded("POST","/api/index.php")
if ($rest.LastMethodSuccess -ne $true) {
$($rest.LastErrorText)
exit
}
# We should expect a 200 response if successful.
if ($rest.ResponseStatusCode -ne 200) {
$("Request Header: ")
$($rest.LastRequestHeader)
$("----")
$("Response StatusCode = " + $rest.ResponseStatusCode)
$("Response StatusLine: " + $rest.ResponseStatusText)
$("Response Header:")
$($rest.ResponseHeader)
$("Response Body:")
$($responseBody)
exit
}
$xml.LoadXml($responseBody)
$($xml.GetXml())
# Sample response:
# Use this online tool to generate parsing code from sample XML:
# Generate Parsing Code from XML
# <?xml version="1.0" encoding="ISO-8859-1"?>
# <response>
# <role>
# <id>7</id>
# <name>Academic Admin</name>
# <inactive>0</inactive>
# </role>
# <role>
# <id>19</id>
# <name>Financial Aid</name>
# <inactive>0</inactive>
# </role>
# <role>
# <id>15</id>
# <name>Registrar</name>
# <inactive>0</inactive>
# </role>
# <role>
# <id>4</id>
# <name>Staff</name>
# <inactive>0</inactive>
# </role>
# <role>
# <id>1</id>
# <name>Everyone</name>
# <inactive>0</inactive>
# </role>
# </response>
$i = 0
$count_i = $xml.NumChildrenHavingTag("role")
while ($i -lt $count_i) {
$xml.I = $i
$id = $xml.GetChildIntValue("role[i]|id")
$name = $xml.GetChildContent("role[i]|name")
$inactive = $xml.GetChildIntValue("role[i]|inactive")
$i = $i + 1
}