Deep Link Launch Response is missing some attributes

Created on 19 April 2024, 2 months ago

Problem/Motivation

Some LMSs send a "data" attribute in the deep_linking_settings that needs to be returned to the LMS in the JWT generated based on the LTI 1.3 Deep link specification.

The oat library accepts that parameter, but the LTI Tool Provider module is not sending it, so it comes as null and deep link does not work.
It works in Canvas because it does not send the data parameter in the payload, but D2L and Schoology, for example, send it and the requests fail.

Steps to reproduce

Try to launch deep link and return a link in Schoology or D2L.

Proposed resolution

Need to pass all the parameters to the DeepLinkingLaunchResponseBuilder and not only those three.

This is the current code
$builder = new DeepLinkingLaunchResponseBuilder();
$message = $builder->buildDeepLinkingLaunchResponse($resourceCollection, $event->getRegistration(), $event->getReturn());

And these are all the parameters that the builder accepts. data must come if it comes in the request (and the deploymentId too):

ResourceCollectionInterface $resourceCollection,
RegistrationInterface $registration,
string $deepLinkingReturnUrl,
?string $deploymentId = null,
?string $deepLinkingData = null,
?string $deepLinkingMessage = null,
?string $deepLinkingLog = null,
array $optionalClaims = []
)

Remaining tasks

User interface changes

API changes

Surely the event LtiToolProviderContentResourceEvent will need to include more attributes.

Data model changes

πŸ› Bug report
Status

Active

Version

2.0

Component

Code

Created by

Live updates comments and jobs are added and updated live.
Sign in to follow issues

Comments & Activities

Production build 0.69.0 2024