Celebrate Excellence in Education: Nominate Outstanding Educators by April 15!
Found this content helpful? Log in or sign up to leave a like!
I would like to build an LTI consumer and consume an instance of canvas as though it were an LTI tool. I believe the LTI spec allows for this, but I'm curious if there are docs or if someone can point me in the right direction?
The use case is to add functionality to the left/top/right rail of the page and I've found that using the global js provides a sub par user experience.
Solved! Go to Solution.
What you're describing sounds a lot little how DesignPLUS works. It adds extra drawers in certain area to Canvas. This tool was originally open sourced and it had both an LTI tool as well as a lot of custom Javascript to pop up the Design Tools navigation. The open source tool "KennethWare" stopped working when Canvas released their new rich text editor last year but the CidiLabs version still is updated and supported. Might be useful as inspiration on what is possible. There is a lot of information available to Javascript code in the ENV variable such as ENV["COURSE"} and ENV["current_user"].
Some web apps can work as both a LTI platform and a tool but Canvas is just a platform currently.
Hi @JosephRousseau,
I'm going to take a stab at this, being a Canvas administrator, though i'm probably only 95% sure of my answer. I believe Canvas is set up to be more on the receiving end of data in the LTI equation. From what I'm reading you'd like to do, I don't think LTI is going to really help you much. I do have a couple other ideas though, depending on what exactly you're trying to change/modify/add...
I am personally curious to know what you'd like to change, as I have made a few very simple JS/CSS tweaks myself. By no means am I the most skilled person in the community in this area, but sometimes what seems like an impossible to climb mountain for one person is just an ant hill for someone else.
-Chris
Hi Joseph,
Here's a link to a post about reflexive LTI written by Seth Battis:
Best,
Brian
Thanks for the responses both!
The biggest thing that I'd like to add is a "drawer" to the right side of the page that contains some different information depending on the page. on an assignment page it might be a social chat, on the homepage it may just contain some extra announcements. I was thinking LTI because I'd like it to be context aware (which page/course/ am I currently viewing)/ user aware (who is the current user/ other students in same section). Unfortunately, LTI works using placements/ iframes and so that's not possible because that placement doesn't exist. So seems I either create an app that consumes canvas or use the global js functionality.
Looks like there are other limitations with consuming canvas, so I am now leaning towards the Global JS solution. That "reflexive LTI" seems like a nice solution, but I'm unclear on how it is integrated into canvas and whether it could load some js as I'm imagining. It doesn't look like that is maintained any longer and was using LTI1.1 @SethBattis
Unfortunately I can't modify the source code for Canvas because I would like to launch this in a couple of different schools instances.
What you're describing sounds a lot little how DesignPLUS works. It adds extra drawers in certain area to Canvas. This tool was originally open sourced and it had both an LTI tool as well as a lot of custom Javascript to pop up the Design Tools navigation. The open source tool "KennethWare" stopped working when Canvas released their new rich text editor last year but the CidiLabs version still is updated and supported. Might be useful as inspiration on what is possible. There is a lot of information available to Javascript code in the ENV variable such as ENV["COURSE"} and ENV["current_user"].
Some web apps can work as both a LTI platform and a tool but Canvas is just a platform currently.
Oops a bit of a late reply here.
Thanks for that @jonespm ! I took a better look and it seems the sidebar portion is not LTI/ just built with the global js functionality. I think, in the end, I'm going to need to go down that route.
One problem I'm running into is that I will need to set up a server (to return auth tokens to enable the chat for instance). But since the login is directly to canvas, I'm not sure how to authenticate with my own server (that's where LTI would have helped). Maybe someone has some pointers for this?
Thanks again for all the help!
To participate in the Instructure Community, you need to sign up or log in:
Sign In