LTI Apps

Table of Contents

LTI 1.3 Support and Documentation.

IMS Global has deprecated LTI 1.1 in favor of LTI 1.3. While Schoology still currently supports LTI 1.1 we recommend you use LTI 1.3 for new app development.

Schoology is certified LTI 1.3 Advantage Complete. We are in compliance with the following IMS Specs, which LTI 1.3 App Developers must follow as well.

Security

LTI Advantage Extensions

The following are optional LTI services that we support. You can enable any of these for your App, and as part of the installation process, organizations will be alerted that your app uses the enabled services.

  • Assignment and Grade Services v2.0
  • Deep Linking v2.0
    • Schoology supports two Content Item types: LTI Resource Link and HTML Links. If support for other Content Item Types is required, please contact Schoology Support.
    • If you want Custom Parameters sent with launch payloads for LTI Resource Links created via Deep Linking, you will need to include the parameters in the ‘custom’ key of your ‘content_items’ entry when creating the link. See IMS Deep Linking Docs for an example.
    • Please note, Schoology only generates Deep Linking Launches from the ‘Add Materials’ dropdown in a Course.
  • Names and Roles Services v2.0
    • Schoology imposes an internal limit of maximum 100 records per request, but paging is supported

Adding your App to Schoology

To become an App Developer in Schoology …

  • If you are already a member of an enterprise organization, ask your System Administrator to give you the Schoology Apps:Develop apps permission.
  • If you are not a member of an enterprise organization, you must register. Once you are approved, the user you created will be granted permission to create and test your App in Schoology.
    • Note: On that registration page, the ‘Company’ field you enter will be displayed as the source of the App in Schoology’s App Center.

How to Add your App to Schoology

  1. Navigate to https://app.schoology.com/apps/publisher and click “Add App” to open App Publisher Page.

  2. Enter the basic App data. Note that fields with * are required.
    Screenshot of top of App Publisher page

  3. Optional: Add images for your App.
    Screenshot of Images section of App Publisher page

  4. Required: Select ‘Type of App’, which will reveal additional App-type-specific fields on the page.

  5. Required: App Placements: Select where users should be able to find your App (Courses, Groups, User areas).

    • App Placement Options differ based on the Type of App you are creating (LTI, Standard or Resource).
    • Course Materials placement requires LTI Deep Linking Extension for LTI 1.3 apps, and supports LTI Launch Links (including lineitem data) and HTML links.
    • Rich Text Editor placement requires LTI Deep Linking Extension, and only supports LTI Launch Links without lineitem data.
    • During the App approval process, Schoology will review the suitability of placements you have selected.

    Screenshot of Placements section of App Publisher page

  6. Enter Configuration information for your App.

    • Select ‘Configuration Type’ = District if each School District needs to use a unique URL to reach your App. Select ‘Configuration Type’ = Manual if your App has a single URL.
    • Select any LTI Advantage Extensions your App will use. If any Extensions are selected, you must provide either a Public Key or JWKS URL so that Schoology will be able to verify the JWT tokens you submit.
    • If you want additional information included in the launch payload sent from Schoology to your App, you can set Custom Parameters. We recommend setting a key without upper-case letters, because casing data is lost when Schoology processes the custom parameter. Schoology currently supports these Custom Parameter Variables for values.
      • Custom Parameters set at App Creation and District Configuration are included in App launches from the Placements in ‘Can be installed for’, but not in LTI Resource launches created by Deep Linking. See Deep Linking for guidance on including Custom Parameters in those launches.
    • Following OAuth 2.0 and OpenID Connect requirements, provide an OIDC Login Init URL and Redirect URLs (separated by commas).

    Screenshot of Configuration section of App Publisher page

  7. Required: Click checkbox next to ‘This application meets the Schoology Terms of Use’, then click Submit to create your App.

After you create your App, you will be redirected to your App’s Profile page. If you click the ‘Options’ dropdown, then ‘API Info’, you can retrieve your App’s client_id, as well as OAuth 1.0 credentials if you will need to call the Schoology API from your App.
Screenshot of open Options Dropdown of App Publisher page

How to Install your App for Testing

  • Instructions for installing your App to your test district. Note: You should install your app from the App Profile Page, as it will not be available in the App Center until Schoology approves it.

  • After you install your App to your test district, you will be redirected to your District’s App list. If you click the Configure button next to your App, you will see the deployment_id for your App in this district.

  • Note: After you install the App to the district, you also need to install it to the areas where it should appear (Courses, Groups, etc). Click the ‘Install’ button next to your app on the District App list to complete that additional installation process.

  • Please consider these testing recommendations as well as the other guidance found in the App Platform documentation.

How to Submit your App for Schoology Approval

If your App is only for use in your School District, you do not need to go through the approval process. Just coordinate with your system administrator for app installation.

  • Once you have your App working properly in Schoology, you should submit this form to the Schoology team for review.
  • The review process takes up to 1 month. If you have not been contacted within a month of submitting your app through the form, please reach out to Schoology Support. During the review, a member of the Schoology team will install and verify that your App is working as described in your user docs.
  • If the Schoology reviewer runs into issues using your App, you will be contacted to resolve the problems.
  • If the review completes successfully, you will be contacted via email and your App will be published in the Schoology App Center.

Custom Parameter Variables

If you want additional information included in the launch payload sent from Schoology to your App, you can set Custom Parameters when creating your App. We recommend setting a key without upper-case letters, because casing data is lost when Schoology processes the custom parameter. Schoology currently supports the Custom Parameter Variables in the table below.

Note: Custom Parameters set at App Creation and District Configuration are included in App launches from the Placements in ‘Can be installed for’, but not in LTI Resource launches created by Deep Linking. See Deep Linking for guidance on including Custom Parameters in those launches.

Note: Per IMS spec, for LTI 1.1 apps only, ‘custom_’ will be prepended to the parameter key when it is returned in launch data.

Use:

assignment_title=$ResourceLink.title
user_timezone=$com.schoology.User.timezone
VariableValue returned from Schoology
$com.schoology.Launch.domainThe domain from which the LTI launch is being made. This may be different from the default Schoology domain. This is useful if an LTI app needs to utilize the Schoology API.
 
$User.idUser Unique ID in Schoology
$User.usernameUsername in Schoology
$com.schoology.User.preferredNameUser Preferred First Name in Schoology
$com.schoology.User.uniqueIdUser Unique ID, typically from the SIS
$com.schoology.School.idUnique District ID in Schoology
$com.schoology.Primary.Building.idUser Primary Building ID in Schoology
$com.schoology.User.timezoneUser Timezone
 
$CourseSection.titleConcatenated string containing: “Course Name: Section Name”
$com.schoology.CourseSection.idSchoology Course Section ID
$CourseSection.sourceSectionIdEither the Section School Code or the Section Code if provided
 
$ResourceLink.titleSchoology Assignment Title
$com.schoology.Assignment.idSchoology Assignment ID
$com.schoology.Assignment.teacherIdThe ID of the teacher who created the assignment
$com.schoology.Assignment.dueDateSchoology Assignment Due Date (UNIX format)
$com.schoology.Assignment.dueDateIsoSchoology Assignment Due Date (ISO 8601 format)
 
$com.schoology.Context.Building.idBuilding ID depending on App context:
  • Course = Course Building ID
  • Group = Group Building ID
  • User = User Primary Building ID
 
$ResourceLink.id.historyThe most recent five values of resource link id history
$Context.id.historyThe most recent five values of context id history