Bxp API - APP API
From All n One's bxp software Wixi
Contents
1 Warning!
This document is under construction.
2 Introduction
The bxp API (Application Programming Interface) allows digital interaction with bxp without the need for a human to interact with bxp.
The bxp APP API is a subset of the bxp API designed specifically to work with APPs.
3 How it works
The APP API requires secure posts to be sent to the relevant system. This can be done using a number of DOM (Document Object Technologies)
The primary post is sent to https://ww3.allnone.ie/client/client_demo/cti/userAPP_Main.asp You must replace client_demo with the system you are communicating with.
A number of criteria must be passed for the process to work. The first process is a login process which will provide tokenisation for your app.
After login, all function calls must include the tokens in order for the API to respond correctly.
4 Functions
4.1 Function List
The functions are laid out in terms of usual order of processing
Initial
- login
- settings
- config_primary
- config_buttonX
Lister
- insert_listee
- list_listee
Diary
- diary
- list_appointment
Forms
- campaignlookup
- insert_record
System
- list_hamsters
Future build items
- reminders (future build)
- todo (future build)
- list_reminders (future build)
4.2 Login Function
Primary Function: Provide a login session token
You must post four key pair values. (not including the semi colons)
- strFunction:login
- strSystem:client_demo
- strClient_Username:Demo Account
- strClient_Password:demoPassword
The system will respond with XML.
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<strFunction>login</function>
<intErrorId></intErrorId>
<strError></error>
<intClient_Id>123</userid>
<strClient_SessionField>asdfasdfasdf</strClient_SessionField>
</data>
4.3 Settings / Config recall Function
Primary Function: Provide APP settings for the bxp app.
You must post four key pair values. (not including the semi colons)
- strFunction:settings
- strSystem:client_demo
- intClient_Id:123
- strClient_SessionField:asdfasdfasdf
The Client Id and Client Session Field are retrieved from the login process.
It is possible to also limit the data returned to a specific button or just the primary settings. Use config_primary or config_buttonX (replacing X with the button number) instead of settings.
The system will respond with XML. The comments were added for highlighting purposes only and will not be in the exported xml
Layout types possible
- Splash
- SplashArticle
- Login
- MainMenu
- 1LargeDisplay
- 1SmallText1LargeText1Button
- 1Text1Button1LargeDisplay
- 2LargeDisplay1LinkButton
- Redirect
- Settings
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<strFunction>settings</function>
<intErrorId></intErrorId>
<strError></error>
<!-- Primary Settings -->
<intInterface_SystemId>2</intInterface_SystemId>
<intInterface_UserId>0</intInterface_UserId>
<intInterface_Columns>2</intInterface_Columns>
<strInterface_RSSTitle>Latest News</strInterface_RSSTitle>
<strInterface_RSSFeed>http://ww3.allnone.ie/client/client_allnone/message/rssfeed.asp</strInterface_RSSFeed>
<strInterface_StoreSystemAndUsername>true</strInterface_StoreSystemAndUsername>
<strInterface_Image_LogoURL>http://ww3.allnone.ie/client/client_allnone/images/Banner.jpg</strInterface_Image_LogoURL>
<strInterface_Image_Background>http://ww3.allnone.ie/images/backgrounds/textureBackground002.jpg</strInterface_Image_Background>
<strInterface_FontColours>#000000,#000000,#000000</strInterface_FontColours>
<strInterface_FontFaces>Calibri,Calibri,Calibri</strInterface_FontFaces>
<strInterface_FontSizes>18,12,10</strInterface_FontSizes>
<strInterface_SystemKeywords>Login,Back,Get config file,Reset all settings</strInterface_SystemKeywords>
<!-- Button 0 Settings -->
<strInterface_Button0_Title>To Do!</strInterface_Button0_Title>
<strInterface_Button0_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button0_Styling>
<strInterface_Button0_Layout>1Text1Button1LargeDisplay</strInterface_Button0_Layout>
<strInterface_Button0_FunctionType>App</strInterface_Button0_FunctionType>
<strInterface_Button0_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userApp.asp</strInterface_Button0_APICall>
<strInterface_Button0_Config>[[--SEP--]]Insert,Listee[[--SEP--]]List,Listee,All</strInterface_Button0_Config>
<strInterface_Button0_URL></strInterface_Button0_URL>
<strInterface_Button0_Parameters></strInterface_Button0_Parameters>
<!-- Button 1 Settings -->
<strInterface_Button1_Title>Ticket</strInterface_Button1_Title>
<strInterface_Button1_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button1_Styling>
<strInterface_Button1_Layout>1SmallText1LargeText1Button</strInterface_Button1_Layout>
<strInterface_Button1_FunctionType>App</strInterface_Button1_FunctionType>
<strInterface_Button1_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button1_APICall>
<strInterface_Button1_Config>[[--SEP--]][[--SEP--]]Insert,Record,intCampaignId,strFields,strValues</strInterface_Button1_Config>
<strInterface_Button1_URL></strInterface_Button1_URL>
<strInterface_Button1_Parameters></strInterface_Button1_Parameters>
<strInterface_Button2_Title>Today</strInterface_Button2_Title>
<strInterface_Button2_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button2_Styling>
<strInterface_Button2_Layout>2LargeDisplay1LinkButton</strInterface_Button2_Layout>
<strInterface_Button2_FunctionType>App</strInterface_Button2_FunctionType>
<strInterface_Button2_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button2_APICall>
<strInterface_Button2_Config>List,Listee,Today[[--SEP--]]List,Appointment,Today[[--SEP--]]Redir,Button0</strInterface_Button2_Config>
<strInterface_Button2_URL></strInterface_Button2_URL>
<strInterface_Button2_Parameters></strInterface_Button2_Parameters>
<strInterface_Button3_Title>Tomorrow</strInterface_Button3_Title>
<strInterface_Button3_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button3_Styling>
<strInterface_Button3_Layout>2LargeDisplay1LinkButton</strInterface_Button3_Layout>
<strInterface_Button3_FunctionType>App</strInterface_Button3_FunctionType>
<strInterface_Button3_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button3_APICall>
<strInterface_Button3_Config>List,Listee,Tomorrow[[--SEP--]]List,Appointment,Tomorrow[[--SEP--]]Redir,Button0</strInterface_Button3_Config>
<strInterface_Button3_URL></strInterface_Button3_URL>
<strInterface_Button3_Parameters></strInterface_Button3_Parameters>
<strInterface_Button4_Title>Contacts</strInterface_Button4_Title>
<strInterface_Button4_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button4_Styling>
<strInterface_Button4_Layout>1Text1Button1LargeDisplay</strInterface_Button4_Layout>
<strInterface_Button4_FunctionType>App</strInterface_Button4_FunctionType>
<strInterface_Button4_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button4_APICall>
<strInterface_Button4_Config>[[--SEP--]]Lookup,intCampaign_Id,strCDA_X_field_Y_Z-strCDA_X_field_Y_Z[[--SEP--]]</strInterface_Button4_Config>
<strInterface_Button4_URL></strInterface_Button4_URL>
<strInterface_Button4_Parameters></strInterface_Button4_Parameters>
<strInterface_Button5_Title>Critical</strInterface_Button5_Title>
<strInterface_Button5_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button5_Styling>
<strInterface_Button5_Layout>1LargeDisplay</strInterface_Button5_Layout>
<strInterface_Button5_FunctionType>App</strInterface_Button5_FunctionType>
<strInterface_Button5_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button5_APICall>
<strInterface_Button5_Config>List-Hamsters</strInterface_Button5_Config>
<strInterface_Button5_URL></strInterface_Button5_URL>
<strInterface_Button5_Parameters></strInterface_Button5_Parameters>
<strInterface_Button6_Title>Website</strInterface_Button6_Title>
<strInterface_Button6_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button6_Styling>
<strInterface_Button6_Layout>Redirect</strInterface_Button6_Layout>
<strInterface_Button6_FunctionType>Redirect</strInterface_Button6_FunctionType>
<strInterface_Button6_APICall></strInterface_Button6_APICall>
<strInterface_Button6_Config></strInterface_Button6_Config>
<strInterface_Button6_URL>http://www.bxpsoftware.com</strInterface_Button6_URL>
<strInterface_Button6_Parameters></strInterface_Button6_Parameters>
<strInterface_Button7_Title>Wixi</strInterface_Button7_Title>
<strInterface_Button7_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button7_Styling>
<strInterface_Button7_Layout>Redirect</strInterface_Button7_Layout>
<strInterface_Button7_FunctionType>Redirect</strInterface_Button7_FunctionType>
<strInterface_Button7_APICall></strInterface_Button7_APICall>
<strInterface_Button7_Config></strInterface_Button7_Config>
<strInterface_Button7_URL>http://www.bxpsoftware.com/wixi</strInterface_Button7_URL>
<strInterface_Button7_Parameters></strInterface_Button7_Parameters>
<strInterface_Button8_Title>System</strInterface_Button8_Title>
<strInterface_Button8_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button8_Styling>
<strInterface_Button8_Layout>Redirect</strInterface_Button8_Layout>
<strInterface_Button8_FunctionType>Redirect</strInterface_Button8_FunctionType>
<strInterface_Button8_APICall></strInterface_Button8_APICall>
<strInterface_Button8_Config></strInterface_Button8_Config>
<strInterface_Button8_URL>https://ww3.allnone.ie/client/client_allnone/main/main.asp</strInterface_Button8_URL>
<strInterface_Button8_Parameters>strInterface_LoginId,strInterface_LoginKey</strInterface_Button8_Parameters>
<strInterface_Button9_Title>Settings</strInterface_Button9_Title>
<strInterface_Button9_Styling>#ff0000,#000000,Calibri,12,URL</strInterface_Button9_Styling>
<strInterface_Button9_Layout>Settings</strInterface_Button9_Layout>
<strInterface_Button9_FunctionType>App</strInterface_Button9_FunctionType>
<strInterface_Button9_APICall>https://ww3.allnone.ie/client/client_allnone/cti/userAPP_Main.asp</strInterface_Button9_APICall>
<strInterface_Button9_Config>strInterface_LoginId,strInterface_LoginKey</strInterface_Button9_Config>
<strInterface_Button9_URL></strInterface_Button9_URL>
<strInterface_Button9_Parameters></strInterface_Button9_Parameters>
</data>4.4 Lister Functions
Primary Function: Provide listing of incomplete lister items (listees).
Listees are work items which can serve as simple reminders of work to be done. Lister
These functions only return incomplete items for the person logged in.
- list_listee_incomplete - Lists all incomplete listees
- list_listee_category - Uses strCategory to do a like search.
- list_listee_title - Uses strTitle to do a like search on complete and incomplete.
- list_listee_due - Uses strWhen to do specific listing
Due keywords
- overdue
- notime
- today
- tomorrow
- thisweek
- nextweek
- thismonth
- nextmonth
The system will respond with XML.
<?xml version="1.0" encoding="UTF-8"?>
<data>
<strFunction>list_listee_title</strFunction>
<intErrorId>0</intErrorId>
<strError></strError>
<item>
<intLister_Id>1123</intLister_Id>
<intLister_ClientId>10</intLister_ClientId>
<strLister_Complete>No</strLister_Complete>
<strLister_Personal>Yes</strLister_Personal>
<dteLister_CompleteDate>2000-01-01 00:00:00</dteLister_CompleteDate>
<strLister_Title>APP Demo Lister 3</strLister_Title>
<strLister_Description></strLister_Description>
<strLister_Deadline></strLister_Deadline>
<strLister_Category>Personal</strLister_Category>
<intLister_LinkId1>0</intLister_LinkId1>
<intLister_LinkId2>0</intLister_LinkId2>
<intLister_LinkId3>0</intLister_LinkId3>
<intLister_LinkId4>0</intLister_LinkId4>
<strLister_eCourseRef></strLister_eCourseRef>
<intLister_FromId>0</intLister_FromId>
<strLister_FromDate>2015-08-16 11:15:25</strLister_FromDate>
<strLister_FromSource>App</strLister_FromSource>
<intLister_ProjectId>0</intLister_ProjectId>
<intLister_MeetingId>0</intLister_MeetingId>
<intLister_MeetingActionPointId>0</intLister_MeetingActionPointId>
</item>
</data>
It is also possible to inject a lister item.
- insert_listee
It just requires one field strTitle which will be added with a category which will always be Personal and no date and time for completion.
4.5 Diary Function
Primary Function: Provide listing of diary events
You must post five key pair values. (not including the semi colons)
- strFunction:diary
- strSystem:client_demo
- intClient_Id:123
- strClient_SessionField:asdfasdfasdf
- intDiary:1
The strFunction setting can have a number of settings.
- diary - defaults for today
- diary_today - explicitly today listing
- diary_tomorrow - explicitly tomorrow listing
- diary_thisweek - explicitly this week listing
- diary_nextweek - explicitly next week listing
- diary_thismonth - explicitly this month listing
- diary_nextmonth - explicitly next month listing
The intDiary is the specific diary to be queried.
The system will respond with XML.
<?xml version="1.0" encoding="UTF-8" ?>
<data>
<strFunction>diary_today</strFunction>
<intErrorId>0</intErrorId>
<strError></strError>
<dtePeriodStart>2015-01-01 00:00:00</dtePeriodStart>
<dtePeriodEnd>2015-01-02 00:00:00</dtePeriodEnd>
<item>
<id>2490</id>
<title>Demo Item 1</title>
<start>2015-01-03T14:30:00</start>
<end>2015-01-03T17:30:00</end>
<url>../appointment/userTimeEvent_Edit-details.asp?intTime_Event_Id=2490</url>
</item>
<item>
<id>2491</id>
<title>Demo Item 2</title>
<start>2015-01-06T14:00:00</start>
<end>2015-01-06T15:30:00</end>
<url>../appointment/userTimeEvent_Edit-details.asp?intTime_Event_Id=2491</url>
</item>
<item>
<id>1171</id>
<title>Demo Item 3</title>
<start>2015-01-08T10:00:00</start>
<end>2015-01-08T14:00:00</end>
<url>../appointment/userTimeEvent_Edit-details.asp?intTime_Event_Id=1171</url>
</item>
</data>
Notes:
- Each item represents a calendar entry. Id is unique for each entry.
- All titles are HTML encoded.
- Time is separated with a T.
- The URL represents navigation within the bxp system to be able to edit that item.
5 Error Listing
- "A function must be provided"
- "A system must be provided"
- "Cross System Calls Not Possible [your call] [system location] "
- "Invalid Account Details"
- "Login - No Username"
- "Login - No Password"
- "Login - System Not Active"
- "Login - System Expired"
- "Login - Unrecognised username [username]"
- "Login - Unrecognised username and or password"
- "Login - IP Restriction Failure"
- "Unrecognised Function [function]"
- "Account Check - No client id"
- "Account Check - No session field"
- "Account Check - Account not found"
- "Diary - No Diary Id passed"
- "Diary - No permissions to access this diary [intDiary]"
- "Diary - Incorrect parameters"
6 History
This API was developed to further the work of Calvin O'Brien and Adam McGivern who work as interns in All n One developing the bxp APP for iPhone, Android and Microsoft devices.
More details on the original project spec can be found here.