DataFlex
DataFlex
Populi Search People
See more Populi Examples
Demonstrates the Populi searchPeople task.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoXml
String sAccessKey
Handle hoRest
Boolean iBAutoReconnect
String sResponseBody
Integer i
Integer iCount_i
Integer iId
String sFirst_name
String sLast_name
String sMiddle_name
String sPreferred_name
Integer iIs_user
String sPrimary_email
String sTemp1
Integer iTemp1
Boolean bTemp1
Move False To iSuccess
// 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.
Get Create (RefClass(cComChilkatXml)) To hoXml
If (Not(IsComObjectCreated(hoXml))) Begin
Send CreateComObject of hoXml
End
Get ComLoadXmlFile Of hoXml "qa_data/tokens/populi_token.xml" To iSuccess
Get ComGetChildContent Of hoXml "access_key" To sAccessKey
Get ComLastMethodSuccess Of hoXml To bTemp1
If (bTemp1 <> True) Begin
Showln "Did not find the access_key"
Procedure_Return
End
Get Create (RefClass(cComChilkatRest)) To hoRest
If (Not(IsComObjectCreated(hoRest))) Begin
Send CreateComObject of hoRest
End
// 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.
Move True To iBAutoReconnect
Get ComConnect Of hoRest "yourcollege.populi.co" 443 True iBAutoReconnect To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
Set ComAuthorization Of hoRest To sAccessKey
Get ComAddQueryParam Of hoRest "task" "searchPeople" To iSuccess
Get ComAddQueryParam Of hoRest "search_term" "Robert" To iSuccess
Get ComAddQueryParam Of hoRest "limit" "10" To iSuccess
Get ComFullRequestFormUrlEncoded Of hoRest "POST" "/api/index.php" To sResponseBody
Get ComLastMethodSuccess Of hoRest To bTemp1
If (bTemp1 <> True) Begin
Get ComLastErrorText Of hoRest To sTemp1
Showln sTemp1
Procedure_Return
End
// We should expect a 200 response if successful.
Get ComResponseStatusCode Of hoRest To iTemp1
If (iTemp1 <> 200) Begin
Showln "Request Header: "
Get ComLastRequestHeader Of hoRest To sTemp1
Showln sTemp1
Showln "----"
Get ComResponseStatusCode Of hoRest To iTemp1
Showln "Response StatusCode = " iTemp1
Get ComResponseStatusText Of hoRest To sTemp1
Showln "Response StatusLine: " sTemp1
Showln "Response Header:"
Get ComResponseHeader Of hoRest To sTemp1
Showln sTemp1
Showln "Response Body:"
Showln sResponseBody
Procedure_Return
End
Get ComLoadXml Of hoXml sResponseBody To iSuccess
Get ComGetXml Of hoXml To sTemp1
Showln sTemp1
// 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>
Move 0 To i
Get ComNumChildrenHavingTag Of hoXml "person" To iCount_i
While (i < iCount_i)
Set ComI Of hoXml To i
Get ComGetChildIntValue Of hoXml "person[i]|id" To iId
Get ComGetChildContent Of hoXml "person[i]|first_name" To sFirst_name
Get ComGetChildContent Of hoXml "person[i]|last_name" To sLast_name
Get ComGetChildContent Of hoXml "person[i]|middle_name" To sMiddle_name
Get ComGetChildContent Of hoXml "person[i]|preferred_name" To sPreferred_name
Get ComGetChildIntValue Of hoXml "person[i]|is_user" To iIs_user
Get ComGetChildContent Of hoXml "person[i]|primary_email" To sPrimary_email
Move (i + 1) To i
Loop
End_Procedure