Hello, I'm just getting started with Canvas integration and need some help getting my bearings. I'm trying to create our own app that can be added into Canvas.
I'm used to Blackboard Building Blocks, where a java app gets installed in the Blackboard server and runs in the background. With that, I can run a thread / process that can do many things, such as send and receive REST calls, poll internal APIs to get data, etc.
Which installation do most schools use? Are they using the SaaS-delivered Canvas, or are they using their own installation of Canvas (the open source one)? I'm assuming most schools would go for the SaaS-hosted one (which is what we did), as that eliminates the need for an on-premises install.
But I'm confused as to how the Canvas integration works. It seems very different. It looks like there is only an externally-facing API that you can call, and you have to publish your own API for Canvas to call back to. Does nothing actually get installed on the Canvas server?
It looks like to enable an integration, the owner of the the account simply pastes in a link to an XML configuration provided by the "tool provider", and puts in a key and secret. From there, Canvas can talk to the tool provider. But is that it? Where is the "app"? Is it just whatever the tool provider runs on their own server? How does a tool provider manipulate the Canvas interface? Does each page load in Canvas call back to all tool providers it has set up asking "what do I display on this page?"
Another thing we would like to do is get notified when teachers do certain things, such as create a new course or a new quiz. In Blackboard, we would have a background thread poll for new data and then post an event back to our API. But how do I do that in Canvas then there is nothing actually running live on the Canvas server that I can control? Do I need to poll the Canvas server on an interval asking for new data that might have been created? Or does Canvas have an "event" capability, where my app can get notified of new courses & quizzes being created?
Thanks for any help you can provide!
Solved! Go to Solution.
I am going through having a look at some of the early days in the Canvas Developers group, and checking in to see if older enquiries have been answered. I also noticed there hasn’t been any discussion on this question.
In recent times, I have created this great getting started guide Canvas APIs: Getting started, the practical ins and outs, gotchas, tips, and tricks. Do you feel that covers off most of what you were looking for back when you posted this. I am always happy to flesh this document out further, to hopefully help new starters coming to the Canvas Ecosystem.
I will mark this as assumed answered for the time being, however, by all means please let me know if you still have an outstanding question and I will take a peek!