LMS connectors
Blackboard connector
Register and operate a campus-approved Blackboard Learn REST integration for facoolta.
Prerequisites
- A Blackboard Learn environment reachable over HTTPS.
- An application registered through the current Anthology developer workflow.
- A dedicated Learn integration user with a deliberately limited institutional role.
- A test course and test enrollment that contain no production student data.
1. Register the integration
Register a REST application and record the application key and secret in a secret manager. Keep separate registrations for sandbox and production. The secret must never be shipped in a browser or mobile application.
2. Authorize in Learn
-
Create an integration user
Assign only the course, enrollment, content, and calendar permissions approved for the pilot.
-
Add the REST integration
Associate the application ID with the integration user and set access to enabled.
-
Request an access token
Exchange the application key and secret server-side using the client credentials grant.
export BLACKBOARD_BASE='https://learn.example.edu'
export BLACKBOARD_KEY='application-key'
export BLACKBOARD_SECRET='application-secret'
curl --fail-with-body --request POST \
--user "$BLACKBOARD_KEY:$BLACKBOARD_SECRET" \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=client_credentials' \
"$BLACKBOARD_BASE/learn/api/public/v1/oauth2/token" 3. Validate the connection
Use the returned access token to query the system version endpoint, then test the smallest approved course query. Treat access tokens as short-lived and refresh them server-side.
curl --fail-with-body \
--header "Authorization: Bearer $BLACKBOARD_ACCESS_TOKEN" \
"$BLACKBOARD_BASE/learn/api/public/v1/system/version" Operational checks
- Follow pagination links or paging fields; never assume a collection fits in one response.
- Back off on throttling responses and retain the last successful sync timestamp.
- Store Learn object IDs with the Learn base origin; display names are not identifiers.
- Recheck course membership before serving cached files or discussion metadata.
- Disable the Learn integration before deleting local credentials during offboarding.
Troubleshooting
| Symptom | Check |
|---|---|
401 | Application key, secret, token expiry, and clock skew. |
403 | REST integration enabled state, integration user, institutional role, and endpoint entitlement. |
404 | Learn base URL, API version supported by the deployment, and object visibility. |
429 | Honor retry guidance, reduce concurrency, and resume from the last completed page. |