Overview
The Willo Labs LTI External Tool can be configured at the system, template or offering level with Brightspace. Below are the steps based on your institution’s policy.
These instructions assume that you have received the necessary course-level configuration data from Willo Labs, including title, URL, consumer key and secret, and custom book parameters.
Install the LTI 1.1 Tool (External Learning Tools)
- Login to Brightspace as an Administrator, navigate to the Admin menu, and select External Learning Tools.
- Click on the Manage Tool Providers (Legacy) tab.
- Click New Tool Provider.
- Input the following information:
- Launch Point
- USA: app.willolabs.com
- Canada: ca.willolabs.com
- Oauth Signature Method: HMAC-SHA1
- Key/Secret: Provided by Willo Labs
- Allow users to use this tool provider: Enabled
- Security Settings: Select All
- Make tool provider available to: All Org Units
- Launch Point
- Click Save.
Install the LTI 1.1 Placement (Remote Plugins)
- Login to Brightspace as an Administrator, navigate to the Admin menu, and select Remote Plugins
- Click on New Remote Plugin and input the following information:
- Plugin Type: Quicklink (CIM)
- Name: Willo 1.1
- Launch Point URL
- USA: https://app.willolabs.com/onelink/
- Canada: https://ca.willolabs.com/onelink/
- Key/Secret: Use the same as above
- Make available to: All Org Units
- Click Save.
IMS Role Mappings
1. Log in to Brightspace and go to Admin tools > IMS Configuration.
2. Next to Instructor, confirm that Instructor checkbox is selected and the Student checkbox is not. (Other roles are optional.)
3. Next to Student, confirm that Student checkbox is selected and the Instructor checkbox is not. (Other roles are optional.)
4. Next to Admin, confirm that Instructor checkbox is selected and the Student checkbox is not. (Other roles are optional.)
Brightspace API
Register the Oauth 2.0 Token (Manage Extensibility)
- Log into Brightspace as an Administrator, navigate to the Admin menu, and select Manage Extensibility.
- Click on the Oauth 2.0 tab and select the Register an App button.
- Complete the following fields:
- Application Name: Willo Digital Delivery
- Redirect URI:
- USA: https://app.willolabs.com/api/oauth2/d2l/callback
- Canada: https://ca.willolabs.com/api/oauth2/d2l/callback
- Scope: core:*:* grades:gradeobjects:delete grades:gradeobjects:read grades:gradeobjects:write grades:gradevalues:read grades:gradevalues:write enrollment:orgunit:read content:*:*
- Access Token Lifetime (seconds): 3600
- Prompt for user consent: Enabled
- Enable Refresh Tokens: Enabled
- Click Register. Note the Client ID and Client Secret
- Log into the Willo Dashboard using your email address:
- USA: https://app.willolabs.com/customer-access/
- Canada: https://ca.willolabs.com/customer-access/
- You will receive an email with a link to login. Click on the link within the email and then click School > Settings > Configure Grade Sync and select Brightspace 1.1. You will repeat this process for the Brightspace 1.3 setup as well.
- Click Edit Configuration and input the following information:
- Brightspace URL: Your institution’s Brightspace base URL (e.g. https://school.brightspace.com)
- Oauth 2.0 Client ID: The Client ID recorded from Step 4
- Oauth 2.0 Client Secret: The Client Secret recorded from Step 4
- Enforce Scopes: Gradebook and Content
- Click Save Configuration.
- Click on the green Login to grant access or refresh tokens button to authorize use of the Oauth using your admin account. If you are previously signed into Brightspace, it will automatically log you in as that user.
Integration Details/Frequently Asked Questions
Why does Willo Labs utilized LMS APIs for Grade Sync? Why is the configuration/access set up at the site-level vs. individual course level? |
The Willo Labs API is set up at the site level one time to ease the implementation required at the course level. The API only initiates when the Instructors accesses a Willo Labs Integration within their LMS course, which sends course creation information back to the provider/publisher system via Willo Labs. At that point Willo Labs will access and pass back grades via the LMS API end-points for any courses that have had activity within the last 5 days. If there are sections without activity or provider content, Willo Labs will not be able to access the APIs for those sections. |
What are the Brightspace API end-points being utilized? |
whoami Request Type: GET Request Path: /d2l/api/lp/(version)/users/whoami Use: Retrieve the current user context’s user information. Used by Willo Labs to test the API connection to the Brightspace instance. Get Grade Objects Request Type: GET Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/ Use: Retrieve all the current grade objects for a particular org unit. Used by Willo Labs to determine if a grade object already exists in the course, or if a new grade object should be created. Get Grade Object Request Type: GET Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId) Use: Retrieve a specific grade object for a particular org unit. Used by Willo Labs to determine if a previously created grade object still exists. Delete Grade Object Request Type: DELETE Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId) Use: Delete a specific grade object for a particular org unit. Used by Willo Labs to delete a previously created grade object when there is an upstream error mapping a grade object to a grade column the integrated product gradebook. Create Grade Object Request Type: POST Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/ Use: Create a new grade object for a particular org unit. Willo Labs maps the newly created grade object to a grade column in the integrated product gradebook. Update Grade Object [future use] Request Type: PUT Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId) Use: Update a specific grade object. Used by Willo Labs to update grade object name to reflect current name in product gradebook. Update Column Grade Request Type: PUT Request Path: /d2l/api/le/(version)/(orgUnitId)/grades/(gradeObjectId)/values/(userId) Use: Provide a specific grade value for a particular user. Used by Willo Labs to post a student’s grade from the integrated product into the Brightspace course gradebook. |
What are the specific permissions required for the API Scope? |
|
What are the specific Brightspace role permissions required for the API Grade Sync? |
Classlist
Course Management Console
Grades
Content
|
How does Willo Labs Store API Credentials? |
Willo Labs stores all API credentials using strong encryption (AES256). |
Who at Willo Labs / publishers / providers has access to API Credentials |
|
Who at Willo labs / publishers/ providers has access to API requests via a manual approach? |
Tier 3 Engineers have access to API request layer to launch non-systematic API requests. This functionality is only used in escalated support situations. |