LTI 1.3 link selection (module) setup

Jump to solution
Community Explorer


I'm trying to follow the "link selection" placement (module) instructions here: and I'm having some issues. In the past I was able to set up the "editor button" placement using an XML config, but it seems the "link selection" one requires the JSON approach, so maybe I'm doing something wrong.

This is all done on my open source Canvas setup (dev environment), running the latest version of Canvas pulled from the github repo.

This is the JSON config (with security values changed):

    "title": "LTI 1.3 test (MODULE)",
    "scopes": [],
    "extensions": [
            "domain": "mydomain",
            "tool_id": "deep-linky",
            "platform": "",
            "settings": {
                "text": "LTI 1.3 test (MODULE)",
                "icon_url": "",
                "placements": [
                        "text": "Embed Tool Content as a Canvas Module",
                        "enabled": true,
                        "icon_url": "",
                        "placement": "link_selection",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": ""
    "public_jwk": {
        "kty": "val",
        "alg": "val",
        "n": "val",
        "use": "val",
        "e": "val",
        "kid": "val"
    "description": "1.3 Test Tool DEV MODULE",
    "target_link_uri": "",
    "oidc_initiation_url": "",
    "custom_fields": {}

 So the thing is I'm not getting any errors at all when I create the LTI Key like this, it just doesn't show any placements when I'm adding the app to the course, and it also doesn't show when trying to add an external tool to the module.

I tried editing the previous tool that I had created via XML and just adding the "link_selection" placement to it, but that didn't work either. I also created a new tool from scratch and tried to add the Link Selection to it manually, but no luck.

Any ideas?


1 Solution
Community Explorer

Huh. So I was adding the "app" directly into the course through the client id and that wasn't working. I tried going to the admin panel and then adding the app globally as an admin (also using client id) and that worked. I didn't really change anything on the app config. So strange. Thanks @svickers2 !

View solution in original post