Adding third-party content to Open edX courses using LTI

Want to use existing training content in your courses, or pull in content from a third-party tool? You can use the LTI Consumer XBlock! 

To learn more about LTI, you may want to try this article from the IMS Global Learning Consortium. If you're not sure if you can use LTI with an external service, reach out to them and find out if they support it! LTI is a widely used standard used by every major LMS on the market, so it's in their best interests to do so.

In this example, we're going to be using SCORM Cloud, a service that lets you embed SCORM content into your courses, but it could be anything. The exact instructions for your tool will unfortunately vary, so you may need to reach out to us for assistance or contact the developer of whatever tool you're using for assistance, but we'll cover the basics here to get you as far as we can. We've also got an article on how to work specifically with H5P, a learning tool that allows you to create fun HTML5 interactive activities for your courses using LTI, as well as an article on how to prepare your SCORM Cloud content for use in Open edX so you may want to check those out. This article simply outlines the basic steps shared by all tools with LTI support.

Adding your LTI passport to your Open edX course

To proceed, you will need your LTI passport info from your tool provider. Once you have, navigate to your course in Studio, and select  Advanced Settings from the Settings menu at the top of the page.

Next, scroll down or search the page to find LTI Consumer Passports.

 As you can see in the instruction below the box, the passport is entered in the format: "id:client_key:client_secret". In our example, we got our information from the BLTI dispatch in SCORM Cloud, which meant we ended up with the following (though yours may look different).

    "SCORM:9509f5cf-d5d8-4e5a-a007-1c8d2d01ae9e:xxeuoQEGPCIwWVWVtxRgG8aFLsCLpk9CzO8xge6S"
]

The formatting of this must be followed exactly, or it will not accept your key. If you have multiple passports, you will need to include a comma between them, but not trailing at the end. It'll look something like this:

    "SCORM:9509f5cf-d5d8-4e5a-a007-1c8d2d01ae9e:xxeuoQEGPCIwWVWVtxRgG8aFLsCLpk9CzO8xge6S",
    "H5P:iaiacthuluftagn:secretgoeshere"
]

>> Final reminder: Use your own LTI passport. This one will not work.<<

Note: You need to add a new entry for each SCORM Cloud course/dispatch you want to embed in an edX course. (Yes, this is annoying.) Open edX assumes that an LTI provider will have one key/secret combo for all courses, but SCORM Cloud uses a different one for each course. This is just one example as to how different vendors use the LTI standard differently, despite it being a standard.


Insert your content using the LTI Consumer XBlock

Now that you have an LTI passport and some SCORM content set up, the final thing we need to do is insert it into your course. First, we need to enable the LTI consumer XBlock. You can find more information on enabling XBlocks in Tahoe in our article Open edX XBlocks available in Tahoe, but the quick version is we need to add "lti_consumer" to the Advanced Module List at the top of your Advanced Settings page.

Once this is enabled, navigate in Studio to the location you want to insert your SCORM content. Under  Advanced, select LTI Consumer, and as always, click Edit.

Once the LTI consumer editing window is opened, you'll be greeted by a huge range of options. Don't worry - we don't need most of them. First, set your  Display Name. (This can be anything, and is visible to your learners.)

Next, under  LTI ID, enter the ID you gave your LTI Passport earlier. (In this example, we used SCORM.)

Now we need to tell it which activity to actually open. This will always be the URL you received in the Dispatch. (For SCORM Cloud it will always be https://cloud.scorm.com/sc/blti ) Paste this into the LTI URL field.

If you would like to pass grade/score info from your tool to Open edX, ensure that you set Scored to True and give it a Weight of however many points you want the question to be worth. Note that this is useful even if the subsection isn't graded, as the learner's practice scores will still pull through to let them see that they've completed the activity and give the learner the satisfaction of seeing a correct score recorded.

Lastly, but most importantly, set  Send Extra Parameters to True. This will send things like the learner's email address and name to the tool, and allow their progress to be saved and recalled. This is sharing personally identifiable information with a third party, so ensure your privacy policy covers this! 

(Please note that this field may or may not be present on older versions of Open edX or those hosted by other Open edX providers, and will depend on the version of the LTI consumer XBlock installed on your site.)

That's it! You should now be able to view your content in Studio, and publish it for viewing in your LMS.