You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The lis_outcome_service_url is a field passed by LTI on launch, for certain kinds of endpoints. This is the URL that is used to actually pass grades back. If the course has this properly set in its course endpoint field, instructors can pass grades back on behalf of students. But if it's not, then only students can pass their grades back to Canvas.
Currently, I've coded the system dumb. We have a feature in the BlockPy grader dashboard to let you update the course endpoint, but it relies on whatever is in the lis_outcome_service_url session variable. That session variable gets set in a few code paths, most of which are inconvenient to reach as an instructor - basically, you need to trigger a grade for yourself.
As far as I can tell, the lis_outcome_service_url is really just based on the LTI tool ID for canvas, and that's something that will be the same across users in a course. I didn't understand that when I started using LTI, and therefore I didn't make it so that the course fixes its endpoint field whenever it first gets this information - I made it a more manual process that would be triggered by instructors.
I'm pretty sure that the proper thing to do will be to add in a codepath to the launch hook that correctly updates a fields' endpoint with the lis_outcome_service_url when it's missing that information. Then, we won't have all these issues where instructors cannot pass back grades!
As always, the devil will be the testing environment. But I think it's just a matter of getting the logic just right with the launch.
Or we could just finally upgrade to LTI 1.3 and move on with our lives...
The text was updated successfully, but these errors were encountered:
The
lis_outcome_service_url
is a field passed by LTI on launch, for certain kinds of endpoints. This is the URL that is used to actually pass grades back. If the course has this properly set in its course endpoint field, instructors can pass grades back on behalf of students. But if it's not, then only students can pass their grades back to Canvas.Currently, I've coded the system dumb. We have a feature in the BlockPy grader dashboard to let you update the course endpoint, but it relies on whatever is in the
lis_outcome_service_url
session variable. That session variable gets set in a few code paths, most of which are inconvenient to reach as an instructor - basically, you need to trigger a grade for yourself.As far as I can tell, the
lis_outcome_service_url
is really just based on the LTI tool ID for canvas, and that's something that will be the same across users in a course. I didn't understand that when I started using LTI, and therefore I didn't make it so that the course fixes its endpoint field whenever it first gets this information - I made it a more manual process that would be triggered by instructors.I'm pretty sure that the proper thing to do will be to add in a codepath to the launch hook that correctly updates a fields' endpoint with the
lis_outcome_service_url
when it's missing that information. Then, we won't have all these issues where instructors cannot pass back grades!As always, the devil will be the testing environment. But I think it's just a matter of getting the logic just right with the launch.
Or we could just finally upgrade to LTI 1.3 and move on with our lives...
The text was updated successfully, but these errors were encountered: