jmpease
New Member

ContentItemSelectionRequest missing parameters?

I'm in the process of adding support for LTI Content-Item to our tool, and have found that Canvas does not send certain parameters that we depend on when explicitly enabling Content-Item support using

<lticm:property name="message_type">ContentItemSelectionRequest</lticm:property>

We're expecting things like

tool_consumer_info_product_family_code

lis_person_*

custom_canvas_user_login_id

in order to identify the Canvas user, but they appear to be missing in this case.

Is there some configuration setting that I'm missing to enable passing of these parameters, or is there a different/preferred approach to gathering this information from Canvas as part of a ContentItemSelectionRequest launch?

Labels (1)
5 Replies
garth
Community Champion

 @jmpease ​ for the variables you specifically listed I am receiving the following values on launch request from Canvas:

  • tool_consumer_info_product_family_code = "canvas"
  • lis_person_*:
    • lis_person_contact_email_primary = <email address of launching user>
    • lis_person_name_family = <last name of launching user>
    • lis_person_name_full = <full name of launching user>
    • lis_person_name_given = <first name of launching user>
  • custom_canvas_user_login_id = <login id for the launching user>

Are you inspecting the actual request?  Or are you inspecting values that are being passed to you from another layer in the application?

Here is a screenshot of the exact params I am receiving from Canvas in the launch request:

209842_pastedImage_8.png

Thanks for looking into this  @garth ​

Can you verify that the "lti_message_type" in your case is "ContentItemSelectionRequest", rather than "basic-lti-launch-request"?  I suspect not as I don't see required LTI Content-Item message parameters such as "content_item_return_url" in your form data. When using the latter message type I do indeed see the expected parameters passed in the launch request.

Here's a screenshot showing a relevant portion of the form data in a "basic-lti-launch-request":

basic-lti-launch-request.png

Here's a screenshot showing the entirety of the form data in a "ContentItemSelectionRequest":

ContentItemSelectionRequest.png

As mentioned, the only difference between the two tool configurations is that the latter is using

<lticm:property name="message_type">ContentItemSelectionRequest</lticm:property>

garth
Community Champion

 @jmpease ​ I apologize, I overlooked the message type in your original post.

I am not using the "message_type" in my lti config.

If I put it in, the fields you reference are removed from the launch request.

Looking at documentation at IMS Global:  3 Information Model | IMS Global Learning Consortium

Specifically "3.1 Example Request", it seems the values you are looking for should be there.

I have not implemented this call in our LTI, you may want to contact Canvas directly regarding this.

kaselvan33
New Member

I am new to LTI and working as a Tool Provider. I am able to launch the URL from canvas and i am not getting following values and displayed as null as i need that. I am using  LtiMessageType as "basic-lti-launch-request". I have the email address, name but still the values are coming as null. Please let me know do i need to do any special request to get the details from Canvas.

302946_pastedImage_1.png

302947_pastedImage_2.png

0 Kudos

You should be able to get names and email, see https://community.canvaslms.com/message/130950-lti-launch-url-with-localhost-address-for-development... 

Most of the others probably are not passed.  Custom variables may give access to some.