hypothesis / lms

LTI app for integrating with learning management systems
BSD 2-Clause "Simplified" License
46 stars 14 forks source link

Spike: Integrate with vitalsource via LTI #5782

Closed marcospri closed 1 month ago

marcospri commented 1 year ago

Explore if the LTI integration path is viable and how much extra effort it would take to support it.

Summary

Canvas D2L Moodle Blackboard
1.1 1.3 1.1 1.3 1.1 1.3 1.1 1.3
Full proxy testing :heavy_check_mark: :heavy_check_mark: :x: :heavy_check_mark: :x: :heavy_check_mark: :x: :heavy_check_mark:
License proxying :heavy_check_mark: :heavy_check_mark:

General setup

We have install the VS app in Canvas, Moodle, BB and D2L with the details provided by VS, see: https://hypothes-is.slack.com/archives/C4K6M7P5E/p1702294836529969

All installs share the same registration: https://qa-lms.hypothes.is/admin/registration/id/10/

AIs that belong to that registration point to the dev env on the VS side. Launching assignments created using that AI, after some debug information from VS, launch the content selector over the VS side. After picking H there our app is launched.

Canvas

LTI 1.3 :heavy_check_mark:

LTI 1.1 :heavy_check_mark:

Canvas throws an error after a successful DL: https://vitalsource.slack.com/archives/C01208U1A2F/p1708601790050899

Fixed. First we were missing DL signing in 1.1. Then there was an issue in VS canvas environment. We tested in QA to force using different URLs.

D2L

LTI1.3 :heavy_check_mark:

LTI1.1

We now support DL in 1.3. We haven't verified full proxy support with VS.

Blackboard

LTI1.3

LTI1.1

We don't support DL in blackboard LTI1.1. Investigate support.

Moodle

LTI1.3

LTI1.1

We now support DL in 1.3. We haven't verified full proxy support with VS.

marcospri commented 1 year ago

First round of testing:

The docs suggest: VST will transform the original LMS deep_link_return_url and will pass a VST version of the deep_link_return_url

but I'm getting one pointing directly to canvas. Maybe because I'm deep linking to /books and I'm not supposed to?

marcospri commented 1 year ago

This has been now fixed.


This is probably a very niche issue we have with the LTIA API proxying, not many tools might use this. In any case our grading integration is not currently working while proxying via VS in Canvas.

In Canvas, our integration uses the "SpeedGrader" functionality. This means that we use the LTIA API to send "submissions" using a Canvas extension to that API and SpeedGrader itself takes care of reading/recording grades for instructors.

Here are the docs for the Canvas extension: https://canvas.instructure.com/doc/api/score.html#method.lti/ims/scores.create

And sample payload of what we send to /scores {'scoreMaximum': 1, 'scoreGiven': None, 'userId': '2b04173b-1f12-42ea-aa87-5dd0b6ef2473', 'timestamp': '2023-10-31T11:25:43.971377+00:00', 'activityProgress': 'Completed', 'gradingProgress': 'FullyGraded', 'https://canvas.instructure.com/lti/submission': {'submission_type': 'basic_lti_launch', 'submission_data': 'http://localhost:8001/lti_launches?focused_user=f6c3ed0edd8a4013bfc8d0c22b9eca&learner_canvas_user_id=35&group_set=&resource_link_id=c4ac3ef1a4afafd15f22ef9e11c9149cb9b30bac&url=https%3A%2F%2Felpais.com', 'submitted_at': '2023-10-31T11:25:42.913000+00:00'}}

mkdir-washington-edu commented 5 months ago

Notes for me, 2024-05-28

The "License proxying" line is all good to go for all LMSs. VitalSource has said they want to test it in non-Canvas environments themselves.

The full proxy isn't available for 1.1 instances because it involves support for deep linking which we currently don't support in 1.1 for those LMSs.

marcospri commented 1 month ago

We are not actively working on this anymore, the current integration is being used by some schools. We'll track any new needs in new issues.