What development projects do you have currently underway?
Not so much an API-based development project, but we are looking doing some new things with the SIS import files through the API. One of our online programs has a orientation course that isn't a "real" course per se so it isn't in our normal SIS. We just started playing with batch loading new students in this program into new sections of this orientation course based on their program start date. Any students that start in the 201521 term show up in a 201521 section, etc. So far, it looks doable and has been working really well in our testing.
Currently I'm working on an LTI tool that turns a Canvas quiz into an immediate feedback self-test for teams. I'm basically just grabbing all the multiple choice items in the selected quiz, and presenting them to the selected group set teams to be taken collaboratively. Each time a team selects an answer option, they see the feedback associated with that response, and their score is adjusted. You lose half the points a question is worth each time you pick a wrong answer, but you get to try again. The entire team gets points for the assignment (not the quiz, which does not need to be published).
One thing I am struggling with is how often to push grades back to Canvas. Right now I do it every time an answer is selected, and I'm putting any incorrectly chosen options into a comment. That generated a long list of comments and grading events. I could of course withhold grades until the entire quiz has been completed, but I don't want data to be lost if something happens mid-quiz. I've taken pains to prevent teams from trying to restart the quiz as a way of cheating, so if someone's computer crashes, that team has no way to get back in to try again or pick up where they left off. It would be good for an instructor to know how far they got. Better, of course, if I store the info in such a way that I can reconstruct their responses, but I haven't tackled that piece yet.
The other thing I'm debating is what to do about masquerading. The easiest way to determine which group a logged-in student is in is to hit the groups endpoint 'as' him/her, but since faculty can't masquerade, I have to use an admin API token to do it. That's fine for us, but if I ever decide to go public with this, it would be best if faculty could use their own tokens. I also masquerade when submitting the grades, using the id of whoever chose the quiz and group-set during the resource selection phase. If faculty use their own tokens, that wouldn't be necessary, so if I do create a version that works for faculty, I might need a way to branch the code. I don't know what happens when you use as_user_id and your token has no masquerading privileges. The documentation suggests that masquerading will fail, no matter what you are trying to do. But the question is, if the masquerade fails, does the rest of the API request fail with it, even if the user is not asking for anything they couldn't do themselves? I'm thinking yes, but I haven't tested. I'm hoping that this might be a good place to collect that sort of information.
At a technical level, if a user exists in two separate Canvas instances, is this a problem a Canvas Trust can address? If so, how? Can you add a trust(ed) login to an existing user account? Most of the (very limited) documentation I've found seems to focus on Trusts operating with enrollments, not users, but it does seem…
Hi everyone, I am seeking some insight into how Canvas LMS handles HTTP errors and how they are reflected in the logs versus the user interface. We are currently observing the following behavior in our environment: Log-only errors: We are seeing 500 (Internal Server Error) and 503 (Service Unavailable) errors recorded in…
I looked through the LTI Variable Substitutions documentation and while there are variable substitutions available for Canvas.term.name and Canvas.term.id (which is the Canvas incremented ID like "104"), I was surprised to see there was no option for Canvas.term.sisSourceId I tried testing other possible variants that may…
Summary:The Learning Mastery Gradebook allows drag-and-drop reordering of outcome columns, and this triggers a call to /api/v1/courses/:course_id/assign_outcome_order. The API returns 204 No Content (success), but the column order does not persist after page refresh. Steps to Reproduce: Open Learning Mastery Gradebook for…
I'm building a tool for my institution that imports grades from another LTI tool into Canvas so instructors can automate late assignment policies not otherwise supported by Canvas. I'm trying to use the LTIv1.3 ID which is readily available on the LTI-side as a link to the student record on Canvas, but I can't find the ID…