Developing LTI tools for itslearning

This document will explain how Itslearning works with LTI and what is needed to add your tool to itslearning.

It will not describe how develop the tool itself. The information required for the development is available from IMS Global and we only link to some specific page from here.
The general specifications can be found at IMS Global: Learning Tools Interoperability.

itslearning is certified for supporting tools conforming to the 1.0 or 1.1 specifications, including the outcome service to post assessment results back from the tool provider (3rd party) to the tool consumer (Itslearning)

There are two main options to connect a tool to Itslearning:

  1. A teacher can add any LTI tool directly in their course. This requires the teacher to be able to obtain basic configuration parameters for the tool. This approach is particularly useful when wanting to use publicly available tools such as those found on for example www.edu-apps.org.
    The teacher can set up the tool in three ways: by launch url, by configuration url or by configuration XML:

    1. The configuration URL and the XML approaches only differ in the method how the XML is supplied, the actual XML content will be the same

    2. The launch URL is the simplest way when the tools does not require any special configuration, and should work in most cases.

    Instructions can be found here:
    https://www.itslearning.com/help/en-gb/ApplicationHelp_Left.htm#CSHID=Learning%20tools%2Flti.htm|StartTopic=Content%2FLearning%20tools%2Flti.htm

  2. A 3rd party tool provider can register and preconfigure tools that are made available in the Itslearning App Library. The app library will make your tool easily available to a much larger user base, and may be a valuable tool in increasing sales.

    At this time, the configuration in this option only supports adding the launch URL, but you may pass custom parameters to assist your tool.

    Although the configuration is simplified, the LTI interfaces remain the same, and all the parameters and functionality is available.

    The registration can be made by signing up as an extension developer through the https://developer.itslearning.com website, and following the instructions on this page: https://developer.itslearning.com/Register_your_extension.html

    When the developer is happy with the application, it must be submitted for review and approval to the Itslearning apps team. There is an approval process that can be more than a little confusing – we are working to improve it!

    More on the App library here:
    https://www.itslearning.com/help/en-gb/ApplicationHelp_Left.htm#CSHID=Learning%20tools%2Flti.htm|StartTopic=Content%2FLearning%20tools%2Flti.htm

XML Configuration

If your tool requires additional configuration or custom parameters you will need to provide this to the consumer, this can be either a configuration URL where the XML is hosted. For the exact formatting please see the documentation at Representing Basic Launch Links in a Cartridge. An example is:

XML example
<?xml version="1.0" encoding="UTF-8"?> <cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:blti = "http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm ="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp ="http://www.imsglobal.org/xsd/imslticp_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd"> <blti:title>Your tool title</blti:title> <blti:description>Your tool description</blti:description> <blti:custom> <lticm:property name="keyname">value</lticm:property> <lticm:property name="customuserid">$User.id</lticm:property> </blti:custom> <blti:extensions platform="itslearning.com"> <lticm:property name="privacy_level">public</lticm:property> </blti:extensions> <blti:launch_url>url to the basiclti launch URL</blti:launch_url> <blti:secure_launch_url>secure url to the basiclti launch URL</blti:secure_launch_url> <cartridge_bundle identifierref="BLTI001_Bundle"/> <cartridge_icon identifierref="BLTI001_Icon"/> </cartridge_basiclti_link>

Note: application key and shared secret are not contained within the XML cartridge, so if applicable you need to supply these separately to your consumer.

Extensions

You can pass itslearning some extension parameters which we will use in display the learning tool, please use platform="itslearning.com" to indicate it are extension properties meant for the itslearning platform.

Property name

Description

height

If provided and view type of the learning tool instance is set to frame this will be used as height of the frame.

privacy_level

This setting determines the amount of information regarding you name/e-mail is sent. Possible values:

anonymous - Send no name or e-mail information, of course an id is still sent to the tool can identify a user
email_only - Only the e-mail address will be passed along to the learning tool
name_only - Only you name will be passed along to the learning tool
public - All information (name and e-mail) well be passing along to the learning tool

if not provided anonymous will be used by default.

width

If provided and view type of the learning tool instance is set to frame this will be used as width of the frame.

LTI standard parameters

Here you will find the list of default parameters as they are defined by LTI and the value we pass in them. Optional parameters that are not listed here have not been implemented so no value will be provided for those.

Protocol parameters

Parameter name

Description

Example value

lti_message_type

Required prescribed value

basic-lti-launch-request

lti_version

Required prescribed value

LTI-1p0

Launch parameters

Parameter nane

Description

Example value

oauth_callback

Not really used, returning a default value.

about:blank

oauth_consumer_key

The key provided (optional).
Should identify the means for the tool to lookup the corresponding secret

mykey

oauth_nonce

Unique token generated for the request

73a0cd32-28d8-40b4-8025-11370b8710a7

oauth_signature

Signature used to validate the request

ocxCBd2seswc2EsJ4rwcfurep2w=

oauth_signature_method

Signing method used

HMAC-SHA1

oauth_timestamp

Time in seconds since epoch

1393239008

oauth_version

oauth version used

1.0

Context parameters

Parameter name

Description

Example value

context_id

Course identifier

In scope of a course: Course-<CustomerId>-<CourseId> example: Course-23002-6
in scope of MyLibrary: MyLibrary-<CustomerId>-<UserId> example: MyLibrary-23002-1

context_label

Course code

MYCA

context_title

Course title

Course A

context_type

Context type, always course section

CourseSection

resource_link_id

Unique identifier for the resource

0FDF5F5BEA65E4E5E44DE75758E0E537

resource_link_title

Learning tool instance title

LTI tool

resource_link_description

Learning tool instance description

A long description elaborately describing the learning tool instance and possible some more details

User parameters

Parameter name

Description

Example value

lis_person_contact_email_primary

User e-mail address.
Only provided if privacy level is set to Public or EmailOnly

myemail@address.com

lis_person_name_family

User family name.
Only provided if privacy level is set to Public or NameOnly

Nordmann

lis_person_name_given

User given name.
Only provided if privacy level is set to Public or NameOnly

Ola

lis_person_name_full

User fullname.
Only provided if privacy level is set to Public or NameOnly

Ola Nordmann

roles

Comma seperated institution and context roles of the user.
We always provide the full URN.

Possible institution roles:

  • Guest

  • Learner

  • Instructore

Possible context roles:

  • Member

  • Learner

  • Instructor

  • ContentDeveloper

  • Manager

  • Mentor

  • Administrator

  • TeachingAssistant

urn:lti:instroles:ims/lis/Instructor,urn:lti:role:ims/lis/Instructor

user_id

Unique id for the user

4 (NB! This is not the personid in Itslearning, but the Userid in Platform)

Consumer parameters

Parameter name

Description

Example value

tool_consumer_info_product_family_code

Consumer identifier

itslearning

tool_consumer_instance_version

Version of the consumer

3.3.0.0

tool_consumer_instance_description

Customer specific full name of the consumer instance

ltitest

tool_consumer_instance_guid

Customer specific unique identifier

23002

tool_consumer_instance_name

Customer specific name of the consumer instance

ltitest

tool_consumer_instance_url

Customer specific url of the consumer

ltitest.itslearning.com

Presentation parameters

Parameter name

Description

Example value

launch_presentation_css_url

Fully qualified url with css which can be used for the tool presentation

http://ltitest.itslearning.com/css/ccl.combined.css

launch_presentation_document_target

Possible values:

  • iframe

  • window

iframe

launch_presentation_height

Height used for presentation frame/window

600

launch_presentation_locale

Locale of the user accessing the learning tool

en-GB

launch_presentation_return_url

Fully qualified return url where the tool can return to with a message

http://ltitest.itslearning.com/Message.aspx

launch_presentation_width

Width use for presentation frame/window

800

Grade service parameters

Parameter name

Description

Example value

lis_course_offering_sourcedid

Identifier for course, only supplied for role: Learner

ltitest.itslearning.com:MYCA

lis_course_section_sourcedid

Identifier for Learning tool instance in course, only supplied for role: Learner

ltitest.itslearning.com:MYCA-104454

lis_outcome_service_url

Fully qualified url for grading results passed back from tool provider. Sent always in basic launch request.

http://ltitest.itslearning.com/Services/LtiService.svc/Grades

lis_person_sourcedid

Identifier for user. Can be Userid (from Platform) or person synckey (from itslearning). Sent always.

  • UserId is default.

  • Person synckey, if LTI has been configured to expose person synckey (this is done in itslearning).

4

lis_result_sourcedid

Unique result identifier, only supplied for role: Learner

mzkaxjv4rwgjrt55eov0tj55;104454;114662;18619

Custom parameter substitution

For custom parameters IMS Global describes Parameter substiction, also see Custom Parameter Substitution. For a specific set of parameters we support this substition, below we will provide a list with the values we substitute and the value we substitute them with. Any other parameters, if provided, will be passed along without any substitution done as is prescribed in the LTI specifications.

Note: as custom fields don't have a predetermined meaning, the value returned depends on the meaning given to it for the specific customer.

Adding custom parameters for preconfigured apps in the itslearning App Library

An application supporting LTI can be defined in the Developer Portal. Upon creating and editing the application metadata, it is possible to define a list of custom parameters. In the custom parameters section on “Add application” page in developer portal, values can be entered as URL encoded key/value pairs with following format:

Example list of custom parameters defined in Developer Portal
key1=value1&key2=value2

The values can then be replaced by the variables listed below.

LTI User variables

Parameter value

Substitution

Example value

$User.id

Unique User Identifier

4 (NB! This is userid from Platform, not personid from itslearning)

LIS Person variables

Parameter value

Substitution

Example value

$Person.name.full

Person full name
Only provided if privacy level is set to Public or NameOnly

Ola Nordmann

$Person.name.family

Person family name
Only provided if privacy level is set to Public or NameOnly

Nordmann

$Person.name.given

Person given name
Only provided if privacy level is set to Public or NameOnly

Ola

$Person.address.locality

Person locale

en-GB

$Person.address.timezone

Person windows timezone

GMT Standard Time

$Person.email.primary

Person primary e-mail address
Only provided if privacy level is set to Public or EmailOnly

myemail@address.com

LIS Course Offering Variables

Parameter value

Substitution

Example value

$CourseOffering.sourcedId

Identifier for course

ltitest.itslearning.com:MYCA

$CourseOffering.title

Course title

Course A

$CourseOffering.courseNumber

Course code

MYCA

LIS Course Section Variables

Parameter value

Substitution

Example value

$CourseSection.sourcedId

Identifier for Learning tool instance in course

ltitest.itslearning.com:MYCA-104454

$CourseSection.title

Learning tool instance title

LTI tool

$CourseSection.shortDescription

Max 200 characters of learning tool instance description

A short description describing the learning tool instance

$CourseSection.longDescription

Learning tool instance description

A long description elaborately describing the learning tool instance and possible some more details

$CourseSection.courseNumber

Course code

MYCA

$CourseSection.timeFrame.begin

Time the learning tool instance is active from

01.01.1900 23:59:59

$CourseSection.timeFrame.end

Time the learning tool instance is active to

31.12.9999 23:59:59

$CourseSection.sourceSectionId

Learning tool instance ID

104454

LIS Result Variables

Parameter value

Substitution

Example value

$Result.sourcedGUID

Unique result identifier

mzkaxjv4rwgjrt55eov0tj55;104454;114662;18619

$Result.resultScore

Result in format valid according to LTI specs

0.6

Itslearning Person Variables

Parameter value

Substitution

Example value

$Person.customerId

Customer\site Identifier the Person belong to

2

Itslearning Context Variables

Parameter value

Substitution

Example value

$Context.courseId

course ID for course this instance is placed in

<CustomerId>-<CourseId>, Example: 23002-6

$Context.organisationId

course organisation ID for course this instance is placed in

1233

$Context.organisationSyncKey

course organisation SyncKey for course this instance is placed in

ASD1234

Itslearning Instance Variables

Parameter value

Substitution

Example value

$Instance.creatorOrganisationIds

list of organisation IDs for creator of this instance in course

123, 423, 3423

$Instance.creatorOrganisationSyncKeys

list of organisation SyncKeys for creator of this instance in course

ADE123, DSE423, DSE3423