cancel
Showing results for 
Search instead for 
Did you mean: 
Community Member

LTI 1.3 Integration Testing

Jump to solution

I am wondering if LTI 1.3 integrations are possible with the current state of Canvas. Specifically in the most current build for the instructure/cavas docker image. I am currently attempting to integrate our LTI 1.3 tool with our containerized canvas instance, but when I go to create a new Developer Key I receive the following screen.315991_pastedImage_1.png

If anyone has any solution to this it would be greatly appreciated. Our team is trying to push this integration as soon as possible. Thank you ahead of time for your response!

1 Solution

Accepted Solutions
Instructure
Instructure

This is likely due to a malformed JSON block for the tool configuration. We don't yet have great docs on the json format that Canvas is looking for (it's on my roadmap).

give this block a try. If you get the same error, then you know something is wrong with your local instance of Canvas:

{  
   "title":"IMS LTI RI",
   "scopes":[  
      "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
      "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
      "https://purl.imsglobal.org/spec/lti-ags/scope/score",
      "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
      "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly"
   ],
   "extensions":[  
      {  
         "domain":"lti-ri.imsglobal.org",
         "tool_id":"IMS LTI RI",
         "platform":"canvas.instructure.com",
         "settings":{  
            "text":"IMS LTI RI Text",
            "icon_url":"https://static.thenounproject.com/png/131630-200.png",
            "placements":[  
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"user_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"migration_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"link_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"homework_submission",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"editor_button",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"course_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"assignment_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"account_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               }
            ],
            "selection_width":"1000",
            "selection_height":"1000"
         },
         "privacy_level":"public"
      }
   ],
   "public_jwk":{  
      "kty":"RSA",
      "alg":"RS256",
      "e":"AQAB",
      "kid":"8f796179-0ac4-48a3-a202-fa4f3d814fcd",
      "n":"nZD7QWcIwj-3N_RZ1qJjX6CdibU87y2l02yMay4KunambalP9g0fU9yILwLX9WYJINcXZDUf6QeZ-SSbblET-h8Q4OvfSQ7iuu0WqcvBGy8M0qoZ7I-NiChw8dyybMJHgpiP_AyxpCQnp3bQ6829kb3fopbb4cAkOilwVRBYPhRLboXma0cwcllJHPLvMp1oGa7Ad8osmmJhXhM9qdFFASg_OCQdPnYVzp8gOFeOGwlXfSFEgt5vgeU25E-ycUOREcnP7BnMUk7wpwYqlE537LWGOV5z_1Dqcqc9LmN-z4HmNV7b23QZW4_mzKIOY4IqjmnUGgLU9ycFj5YGDCts7Q",
      "use":"sig"
   },
   "description":"1.3 Test Tool",
   "custom_fields":{  
      "bar":"$Canvas.user.sisid",
      "foo":"$Canvas.user.id"
   },
   "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
   "oidc_initiation_url":"https://lti-ri.imsglobal.org/lti/tools/281/login_initiations"
}

View solution in original post

2 Replies
Instructure
Instructure

This is likely due to a malformed JSON block for the tool configuration. We don't yet have great docs on the json format that Canvas is looking for (it's on my roadmap).

give this block a try. If you get the same error, then you know something is wrong with your local instance of Canvas:

{  
   "title":"IMS LTI RI",
   "scopes":[  
      "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
      "https://purl.imsglobal.org/spec/lti-ags/scope/result.readonly",
      "https://purl.imsglobal.org/spec/lti-ags/scope/score",
      "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly",
      "https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly"
   ],
   "extensions":[  
      {  
         "domain":"lti-ri.imsglobal.org",
         "tool_id":"IMS LTI RI",
         "platform":"canvas.instructure.com",
         "settings":{  
            "text":"IMS LTI RI Text",
            "icon_url":"https://static.thenounproject.com/png/131630-200.png",
            "placements":[  
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"user_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"migration_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"link_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"homework_submission",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"editor_button",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"course_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"assignment_selection",
                  "message_type":"LtiDeepLinkingRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/deep_link_launches",
                  "canvas_icon_class":"icon-lti"
               },
               {  
                  "text":"IMS LTI RI",
                  "enabled":true,
                  "icon_url":"https://static.thenounproject.com/png/131630-200.png",
                  "placement":"account_navigation",
                  "message_type":"LtiResourceLinkRequest",
                  "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
                  "canvas_icon_class":"icon-lti"
               }
            ],
            "selection_width":"1000",
            "selection_height":"1000"
         },
         "privacy_level":"public"
      }
   ],
   "public_jwk":{  
      "kty":"RSA",
      "alg":"RS256",
      "e":"AQAB",
      "kid":"8f796179-0ac4-48a3-a202-fa4f3d814fcd",
      "n":"nZD7QWcIwj-3N_RZ1qJjX6CdibU87y2l02yMay4KunambalP9g0fU9yILwLX9WYJINcXZDUf6QeZ-SSbblET-h8Q4OvfSQ7iuu0WqcvBGy8M0qoZ7I-NiChw8dyybMJHgpiP_AyxpCQnp3bQ6829kb3fopbb4cAkOilwVRBYPhRLboXma0cwcllJHPLvMp1oGa7Ad8osmmJhXhM9qdFFASg_OCQdPnYVzp8gOFeOGwlXfSFEgt5vgeU25E-ycUOREcnP7BnMUk7wpwYqlE537LWGOV5z_1Dqcqc9LmN-z4HmNV7b23QZW4_mzKIOY4IqjmnUGgLU9ycFj5YGDCts7Q",
      "use":"sig"
   },
   "description":"1.3 Test Tool",
   "custom_fields":{  
      "bar":"$Canvas.user.sisid",
      "foo":"$Canvas.user.id"
   },
   "target_link_uri":"https://lti-ri.imsglobal.org/lti/tools/281/launches",
   "oidc_initiation_url":"https://lti-ri.imsglobal.org/lti/tools/281/login_initiations"
}

View solution in original post

Hi,

 

I hope you are doing well.

 

Have you implemented an LTI advantage on canvas?

 

If yes then canvas support multiple deep links?

 

How to add custom parameters during resource creation? Is there any specific document for Deep link in LTI 1.3 in detail?

what are the limitations of LTI advantage in the canvas that you are facing?

 

Please guide me about this.