Deep Link launch issue?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Posting this on behalf of one of my developers, we've had radio silence from support for over a week and would really like to get this working in Canvas since it works in the other major LMS :smileyconfused:
So we are trying to improve the flow of some of our LTI’s and after some research decided that deep linking is a good way to do it. I might be missing something because I can’t create one yet.
I was taking a look at
https://canvas.instructure.com/doc/api/file.assignment_tools.html
- What “Lti advantage service” should my dev key have? (I just activated them all, so we shouldn’t have any issue here)
- What “placements” should my dev key have? I have editor button and assignment selection
- The one for editor button works but I’m not expecting AGS there. But according to https://canvas.instructure.com/doc/api/file.assignment_selection_placement.html
- It looks like assignment selection is the correct one
There are 7 steps
- the user can select "External Tool" from the Submission Type dropdown.
- They then choose "Find" and select the tool they wish to select content from.
- Canvas then performs a Deep Linking launch request (if configured) to the tool and the user is presented with a tool-side UI to select or create a single LTI resource.
- The tool can return an LTI deep linking message back to Canvas with a URL for the LTI resource. Usually this is a URL with resource identifiers in the url.
- When students view the assignment, Canvas launches to the URL returned by the tool.
- If a resource identifier was provided as part of the url, then the tool will see this in the launch payload and be able to look up and render the correct resource.
- After completing the tool-side assignment, tools may optionally return a grade and/or submission. See the Grading (https://canvas.instructure.com/doc/api/file.assignment_tools.html) documentation for more details.
Step 1, 2, 3 are correct. But I’m stuck at step 4, I’m pretty sure I’m sending a correct JWT
Here’s a video
https://app.vidgrid.com/view/zqeTklHY3w1Q
Here’s an example JWT that I’m sending back (You can see the custom parameters and line item)
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6IjgyMzVlOWY2LWY1Y2MtMTFlOS04MDJhLTVhYTUzODk4NGJkOCJ9.eyJpc3MiOiIxNDk3MTAwMDAwMDAwMDAwMTMiLCJhdWQiOlsiaHR0cHM6XC9cL2NhbnZhcy5pbnN0cnVjdHVyZS5jb20iXSwiZXhwIjoxNTgxNDYwNTczLCJpYXQiOjE1ODE0NTk5NzMsIm5vbmNlIjoibm9uY2U1ZTQzMmEwNTBmNDY0IiwiaHR0cHM6XC9cL3B1cmwuaW1zZ2xvYmFsLm9yZ1wvc3BlY1wvbHRpXC9jbGFpbVwvZGVwbG95bWVudF9pZCI6Ijk3OmVmNDI1Nzc1NjBkYmI5ZjQ5MzJiODI5YjFlYmNhYWIzMTQyODA0MGIiLCJodHRwczpcL1wvcHVybC5pbXNnbG9iYWwub3JnXC9zcGVjXC9sdGlcL2NsYWltXC9tZXNzYWdlX3R5cGUiOiJMdGlEZWVwTGlua2luZ1Jlc3BvbnNlIiwiaHR0cHM6XC9cL3B1cmwuaW1zZ2xvYmFsLm9yZ1wvc3BlY1wvbHRpXC9jbGFpbVwvdmVyc2lvbiI6IjEuMy4wIiwiaHR0cHM6XC9cL3B1cmwuaW1zZ2xvYmFsLm9yZ1wvc3BlY1wvbHRpLWRsXC9jbGFpbVwvY29udGVudF9pdGVtcyI6W3sidHlwZSI6Imx0aVJlc291cmNlTGluayIsInRpdGxlIjoidGVzdCIsInVybCI6Imh0dHBzOlwvXC9jbG91ZC5pbG9zdmlkZW9zLmNvbVwvZW1iZWRcL2sxanpjYVk1b3gxbCIsImVtYmVkIjp7Imh0bWwiOm51bGx9LCJpZnJhbWUiOnsic3JjIjoiaHR0cHM6XC9cL2Nsb3VkLmlsb3N2aWRlb3MuY29tXC9lbWJlZFwvazFqemNhWTVveDFsIiwid2lkdGgiOjY0MCwiaGVpZ2h0IjozNjB9LCJwcmVzZW50YXRpb24iOnsiZG9jdW1lbnRUYXJnZXQiOiJpZnJhbWUifSwiY3VzdG9tIjp7ImN1c3RvbV9pbnN0cnVjdGlvbnMiOiJkYXNkYXNkYXNkYXMiLCJyYW5kdGFnIjoiazFqemNhWTVveDFsIiwic3RhcnRfZGF0ZSI6IiRSZXNvdXJjZUxpbmsuYXZhaWxhYmxlLnN0YXJ0RGF0ZVRpbWUiLCJlbmRfZGF0ZSI6IiRSZXNvdXJjZUxpbmsuYXZhaWxhYmxlLmVuZERhdGVUaW1lIiwiaXNfcXVpeiI6dHJ1ZX0sImxpbmVJdGVtIjp7InNjb3JlTWF4aW11bSI6IjExIiwibGFiZWwiOiJ0ZXN0In19XX0.EdxnNTDJaSKwYJR4Rpgt1w-gAW64du7m59bp2PZha-3eb3edWdkH0Iu6LFSbheMhgNCJ1ehQRMkhays6vOUHTUCFCXO-AImfZg0-fv9by8SiqQWyyrLbK0sEHBjcAlXL66ma21EioYJmWct76Hs8I2YxyPJSN5KG9ZTqWeXM-Pkv6LdyqgNfJey8cB0F4dMoH-WMJxR7MVewb7LyBg4Tvv_irG_itVbrOsLsUWHw0BVeuLE0D1sEbpNJ_aOrAiocJVXDKz2peXNXBWqqVjNFxL68p-6D7IOGxRDOUDXvqecrlE4R0wl8uZNz-tIyVXX7fX0CQ4bV6nyafsN0F7iSvQ
BTW, this flow is working correctly in Blackboard and D2L. Which makes me think I’m just missing one step or placement.
Does Canvas not support sending custom params/line item at that point of the process?
Thanks!