Unable to pass custom data in LTI Launch request. What is the correct way?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi everyone,
I am trying to pass custom data for a deep linking assignment placement. The custom data is set in the lti deep linking response, as part of the lti resource link item. Then, it needs to be available on the https://purl.imsglobal.org/spec/lti/claim/custom
claim in the lti launch request to the tool.
Here is an example of what I have in the deep linking response when the assignment gets created:
...
"https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
"https://purl.imsglobal.org/spec/lti-dl/claim/content_items": [
{
"type": "ltiResourceLink",
"title": "Test assignment",
"text": "A test assignment",
"url": "somelink...",
"lineItem": {
"scoreMaximum": "10",
"label": "Assignment",
"resourceId": "1234"
},
"window": {
"targetName": "MyTool_1592687225123_1234",
"windowFeatures": "menubar=yes,location=yes,status=yes,resizable=yes,scrollbars=no"
},
"iframe": {
"width": 800,
"height": 600
},
"custom": {
"assignment_type": "specific_assignment_type",
"assignment_id": "1234_5678"
}
}
]
Here is the problem: when I try to access the https://purl.imsglobal.org/spec/lti/claim/custom
property in the lti launch request message, it is empty. It seems like my custom data isn't being passed in the launch request.
Does anyone know what I am doing wrong? Is this the correct way to pass custom data to the launch or is it supposed to be done differently?
I'd really appreciate any help on this.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The workaround for this was to simply pass the data in the query string. E.g.
{
"type": "ltiResourceLink",
"title": "Test assignment",
"text": "A test assignment",
"url": "myResourceLink?assignment_id=1234567",
"lineItem": {
"scoreMaximum": "10",
"label": "Assignment",
"resourceId": "1234"
},....
It seems that Canvas will only allow passing variable substitution values as custom data in the launch. This must be configured in the tool settings and cannot be modified by the tool itself in the deep link response.