Issues with Deep Linking and course-copy

Jump to solution
DavidBrooks
Community Member

Hi all,

I've been trying to set up a basic LTI 1.3 integration, and it's mostly working correctly. I have set up a course and attached a resource from my integration using a deep link response containing the following deep-link item:

 

 

{
    "https://purl.imsglobal.org/spec/lti-dl/claim/content_items": [
    {
      "type": "ltiResourceLink",
      "title": "Deep Link to: Resource2",
      "url": "https://my.example.tool/launch",
      "custom": {
        "name": "Resource2",
        "value": "value2"
      }
    }
  ]
}

 

 

Canvas successfully registers the link. Subsequent launches correctly pick up the URL and the custom parameters as specified above. All is well.

However, when I then copy this course (by any method), the link isn't copying over correctly: launches happen to the correct URL, but the custom properties are never available in the payload - thus I can never actually resolve my deep link. My expectation was that the custom parameters would be copied over to the new course.

Are my expectations incorrect? Or is this a known bug with Canvas' LTI 1.3 deep links and course-copy?

(I am aware that, until recently, Canvas did not completely support the custom parameters, and they needed to be added as query-parameters on the `url` in the `ltiResourceLink` item. I'd prefer not to use that approach as it doesn't work in other LTI platforms. However, I can appreciate that it may work more reliably for the interim.)

Update: I also tried creating a Page and used the RCE editor_button placements to embed the same Deep Links. In this case, the Deep Links do copy correctly, and bring their custom parameters with them. It seems to be particular to the link_selection placement.

Thanks in advance,

David

Labels (3)
0 Likes
1 Solution

I've been in touch with Instructure support, and they informed me that the custom-parameter under copy issue should have been fixed recently. I've re-tested this morning, and can confirm it has been. That's resolved my original issue - thanks Instructure!

View solution in original post