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
There are 7 steps
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!
Is canvas support multiple deep links when selecting content?
In my experience, no it does not. In LTI 1.0/1.1/2.0 it sends a parameter of accept_multiple=false, and similarly with LTI 1.3.
Hi ,
I hope you are doing well.
Have you implemented an LTI advantage in canvas?
If yes then canvas support multiple deep links?
what are the limitations of LTI advantage in canvas that you are facing?
Please respond to me asap.
I dpn't think that Canvas supports adding custom parameters to individual resource links; it expects these to be passed in the query string of the launch URL. Something which I think Instructure should really address because it does make interoperability problematic.
Hi Stephen,
Thanks for your prompt reply.
I have the last question.
Does REST canvas API documentation is available for LTI advantage?
Sorry, I do not understand your question. The Canvas REST API is quite separate from LTI; the two are documented independently.
Hello,
Thanks for your prompt response.
You told me that custom parameters are added as a query string in the
launch URL. Can you please provide me any guide related to this for LTI
advantage? How can we do this?