Sharebar?

ToolProxy - Singleton Message Handlers

ToolProxy - Singleton Message Handlers

I am currently trying to pass the certification test suite with a minimal LTI 2.0 implementation. As part of this, I am trying to register a singleton handler for the basic-lti-launch-request, exactly as demonstrated in the Implementation Guide section 5.4.1. I consistently get 400 errors from the ToolProxyService, and the certification page displays the error "No message type found for 'basic-lti-launch-request'"

An excerpt from my tool profile is as follows:

"resource_handler": [
],
"message": [
{
"message_type": "basic-lti-launch-request",
"path": "/lti"
}
],
"service_offered": [
]

I have also tried sending an absolute URI for the path, sending a complete URI for message_type (as specified in ToolProxy JSON Binding document found here https://www.imsglobal.org/lti/model/mediatype/application/vnd/ims/lti/v2...), and sending a MessageType container (as specified in the LTI Core document found here https://www.imsglobal.org/lti/model/uml/purl.imsglobal.org/vocab/lti/v2/... , referenced by section 16, MessageHandler). All of these have gotten the same result.

I would have assumed the example in the implementation guide is a correct and working example, but it doesn't line up with the description of the objects in the ToolProxy JSON Bindings or the LTI core.
Does anyone know which approach is correct, or have any other insight into the source of my problem or the meaning of this error message?

StephenVickers's picture

Re: ToolProxy - Singleton Message Handlers

Unfortunately the Implementation Guide is incorrect in this respect. The basic-lti-launch-request message is not a singleton type and should only be used within a resource handler. The ony singleton message type in LTI 2.0 is the ToolProxyRegistrationRequest.

Thank you Stephen. Since

Thank you Stephen. Since yesterday I have reformatted my request to register a resource handler instead - I believe this is the correct use case? However, even with the basic-lti-launch-request m MessageHandler configured within a ResourceHandler, I am receiving the error above. Here is the resource_handler segment of my request:

"resource_handler": [
{
"resource_type": {
"code": "assessments"
},
"resource_name": {
"default_value": "Awato Career Assessments"
},
"description": {
"default_value": "Take the Awato Career Assessments"
},
"message": {
"message_type": "basic-lti-launch-request",
"path": "/api/lti",
"parameter": [

]
},
"icon_info": {
"icon_style": "awato-logo",
"default_location": {
"path": "/logo.svg"
}
}
}
],

There is a BaseURLChoice configured for type MessageHandler and IconEndpoint, as well. What is the source of the No message type found for 'basic-lti-launch-request' error message? Am I correct in assuming my message handlers must be misconfigured, or this there something else related that I am potentially overlooking?