Python API Credentials Connector Library
This is intended to help anyone who may find this useful. I wanted to write an internal Python application to sync my Blackbaud database with my LDAP server, and I found getting authenticated to be a large hurdle to overcome. I have open-sourced a connector under GPL-v3 that anyone can feel free to use.
https://github.com/justein230/BbApiConnector-Python
Let me know if you have any changes I should make! Open to all improvements.
https://github.com/justein230/BbApiConnector-Python
Let me know if you have any changes I should make! Open to all improvements.
3
Comments
-
Justin,
Nicely done and thank you! I've been building some custom connectors for Power Automate and Power BI - I didn't realize you could roll your own with Python. You probably already know this, but the Legacy List call is also a nifty way to extract just the data you need from the School API as opposed to your entire ocean of SKY data as the API will return only the records in the Advanced List as well as the data and headings you establish in the product. So, you could make an advanced list of just your "active users" with the exact output needed to populate LDAP, call that list via the Legacy List endpoint and then push the JSON data into a CSV file for importing into LDAP -- or -- if you are braver than I, push the JSON directly into the LDAP.
If you don't know Shandor Simon you should. He has done similar work with the API and Powershell.
Shandor Simon , Justin Stein
Again, nice work!
Cheers,
-graham0 -
Hi Graham,
Thanks for the kind words. I was not aware of the Legacy list option - it looks like in order to use it properly, you need a "list ID". Not really familiar with where I would find a list of list IDs. Am I looking in the wrong place?
Thanks,
Justin0 -
Hi Justin,
You can find out the list ID by hovering over the "Run" link for an existing advanced list.
This is one of my advanced lists in Blackbaud K-12:
The part after ~slid= is what you need to take note of for your own advanced list.
For example:
https://api.sky.blackbaud.com/school/v1/legacy/lists/95827
Note that the HTTP response will be formatted as application/json. You'll need to reformat it to be application/csv to match what you get if you were to run the advanced list directly.
Matt0 -
Thanks for posting this. I haven't had the chance yet to check out the code to see if there's anything in there that I can use in my own project, but you may want to look at the Python package that I built for accessing ON API and SKY API endpoints. https://github.com/Lugal-PCZ/bbapi_toolkit0
Categories
- All Categories
- 6 Blackbaud Community Help
- 209 bbcon®
- 1.4K Blackbaud Altru®
- 395 Blackbaud Award Management™ and Blackbaud Stewardship Management™
- 1.1K Blackbaud CRM™ and Blackbaud Internet Solutions™
- 15 donorCentrics®
- 359 Blackbaud eTapestry®
- 2.5K Blackbaud Financial Edge NXT®
- 646 Blackbaud Grantmaking™
- 563 Blackbaud Education Management Solutions for Higher Education
- 3.2K Blackbaud Education Management Solutions for K-12 Schools
- 934 Blackbaud Luminate Online® and Blackbaud TeamRaiser®
- 84 JustGiving® from Blackbaud®
- 6.4K Blackbaud Raiser's Edge NXT®
- 3.7K SKY Developer
- 243 ResearchPoint™
- 118 Blackbaud Tuition Management™
- 165 Organizational Best Practices
- 238 The Tap (Just for Fun)
- 33 Blackbaud Community Challenges
- 28 PowerUp Challenges
- 3 (Open) Raiser's Edge NXT PowerUp Challenge: Product Update Briefing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports+
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Email Marketing
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Gift Management
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Event Management
- 3 (Closed) Raiser's Edge NXT PowerUp Challenge: Home Page
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Standard Reports
- 4 (Closed) Raiser's Edge NXT PowerUp Challenge: Query
- 779 Community News
- 2.9K Jobs Board
- 53 Blackbaud SKY® Reporting Announcements
- 47 Blackbaud CRM Higher Ed Product Advisory Group (HE PAG)
- 19 Blackbaud CRM Product Advisory Group (BBCRM PAG)
