1. Help Hub
  2. Using PebblePad
  3. LTi with Canvas

Install Canvas LTI

Follow the end-to-end installation guide for the PebblePad LTI with Canvas for global administrators to integrate the platforms together as recommended.





Installation is not self-serve. To initiate, request support from a PebblePad Integration Engineer.



1. Add LTI key


  1. Log in to Canvas with an administration account.
  2. From Admin menu, click Developer Keys.
  3. Click +Developer Keys and choose LTI Key.
  4. Complete the fields as follows:

    Key namePebblePad
    Owner email(Your email)
    Redirect URIs
    (Choose your location below)
    Test (all regions):
    https://lti1p3.apptest.pebblepad.com/login/openid/redirect
    AU production:
    https://lti1p3.pebblepad.com.au/login/openid/redirect
    CA production:
    https://lti1p3.pebblepad.ca/login/openid/redirect
    UK production:https://lti1p3.pebblepad.co.uk/login/openid/redirect
    US production:
    https://lti1p3.pebblepad.com/login/openid/redirect

  5. Copy the JSON code (below) for your location.
  6. In Method, choose Paste JSON and paste code.
  7. At the bottom of the JSON text and replace ({Organisation ID}) with your ID.

    Found in your install URL e.g. https://apptest.pebblepad.com/login/abcde

  8. Click Save.
  9. Toggle the status of Developer Key to On.
  10. Copy the Client ID - this is needed in stage 2.






2. Add PebblePad app


  1. From Admin, click Settings.
  2. Click Apps.
  3. Click View App Configurations.
  4. Click +Apps.
  5. For configuration type, choose By Client ID.
  6. Paste Client ID - copied from stage 1.
  7. From the Settings cog of the PebblePad tool, click Deployment ID.
  8. Copy the complete line of text and paste somewhere safe - to return to later.






3. Create service account


For authentication, the API requires a user account with administration permissions. We recommend using a dedicated service account.


  • Follow the Canvas guide to create an admin user (opens in new tab).
  • Assign the account full administrator permissions.








4. Set up membership and grade API


  1. Log in to Canvas with a service account.
  2. From Admin, click Developer Keys.
  3. Click +Developer Key and choose +API key.
  4. Complete the fields as follows:

    Key NamePebblePad
    Owner email(account email address)
    Redirect URIs
    • Test (all regions): https://apptest.pebblepad.com
    • AU Production: https://v3.pebblepad.com.au/
    • CA Production: https://app.pebblepad.ca/
    • UK Production: https://v3.pebblepad.co.uk/
    • US Production: https://pebblepad.com/
    Redirect URI (legacy)Duplicate the same value you add to the Redirect URIs
    Icon URLhttps://tinyurl.com/ppplus
    Enforce ScopesEnabled
    Allow Include Parameters✓
    Enable parametersEnrolments
    url:GET|/api/v1/courses/:course_id/enrollments

    Groups
    url:GET|/api/v1/courses/:course_id/groups
    url:GET|/api/v1/groups/:group_id/memberships

    Submissions
    url:PUT|/api/v1/courses/:course_id/assignments/:assignment_id/submissions/:user_id

  5. Click Save.
  6. Toggle the status of Developer Key to On.
  7. Note the Client ID and Client Key - save for later.






5. Set up PebblePad admin


  1. Log in to PebblePad with an administrator account.
  2. From the Pebble+ burger menu, choose Additional services > Administration.
  3. Click Integrations and Canvas from the sub menu.
  4. Tick Override the default PebblePad Client ID and Secret.
  5. Click Save.
  6. Complete the fields using the information below.
  7. Click Save.


Canvas URLYour Canvas URL - must end in /
Enforce Scopes✓
Client IDCopy from stage 4
Client KeyCopy from stage 4


If Enforce Scopes is locked: 
  1. Copy the current settings from the page.
  2. Delete the set-up.
  3. Reapply the settings (the tick box will be available).






5. Authorise tool in Canvas

  1. Log in to Canvas with the same service account.
  2. Click Authorise.






6. Contact PebblePad Helpdesk


For the PebblePad Integration Engineer to authenticate the integration, provide them with:


  • Installation location (TAQAS or Production)
  • Canvas URL
  • Development ID
  • Client ID



To run an end-to-end user test, follow the workspace manager's guide to creating a Canvas-linked assignment.






JSON files


Copy the code for your geographical location.



TAQAS (test for all locations)

{
    "title": "PebblePad",
    "scopes": [
        "https://purl.imsglobal.org/spec/lti-ags/scope/score",
        "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"
    ],
    "extensions": [
        {
            "domain": "lti1p3.apptest.pebblepad.com",
            "tool_id": "pebblepad",
            "platform": "canvas.instructure.com",
            "settings": {
                "text": "PebblePad LTI 1.3",
                "icon_url": "https://tinyurl.com/ppplus",
                "platform": "canvas.instructure.com",
                "placements": [
                    {
                        "text": "PebblePad ATLAS LTI 1.3",
                        "enabled": true,
                        "icon_url": "https://tinyurl.com/ppatlas",
                        "placement": "assignment_selection",
                        "message_type": "LtiResourceLinkRequest",
                        "target_link_uri": "https://lti1p3.apptest.pebblepad.com/login/openid/redirect"
                    },
                    {
                        "text": "PebblePad Resources LTI 1.3",
                        "enabled": true,
                        "placement": "editor_button",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": "https://lti1p3.apptest.pebblepad.com/login/openid/redirect"
                    },
                    {
                        "enabled": true,
                        "placement": "course_navigation",
                        "message_type": "LtiResourceLinkRequest",
                        "windowTarget": "_blank",
                        "target_link_uri": "https://lti1p3.apptest.pebblepad.com/login/openid/redirect"
                    }
                ],
                "selection_width": 800,
                "selection_height": 600
            },
            "privacy_level": "public"
        }
    ],
    "public_jwk": {},
    "description": "PebblePad",
    "custom_fields": {
        "canvas_user_id": "$Canvas.user.id",
        "canvas_course_id": "$Canvas.course.id",
        "canvas_account_id": "$Canvas.account.id",
        "canvas_api_domain": "$Canvas.api.baseUrl",
        "canvas_assignment_id": "$Canvas.assignment.id",
        "canvas_user_login_id": "$User.username",
        "lis_person_name_full": "$Person.name.full",
        "lis_person_name_given": "$Person.name.given",
        "custom_pebble_username": "$Canvas.user.loginId",
        "lis_person_name_family": "$Person.name.family",
        "lis_person_contact_email_primary": "$Person.email.primary"
    },
    "privacy_level": "public",
    "public_jwk_url": "https://lti1p3.apptest.pebblepad.com/login/{Organisation ID}/.well-known/jwks.json",
    "target_link_uri": "https://lti1p3.apptest.pebblepad.com/login/openid/redirect",
    "oidc_initiation_url": "https://lti1p3.apptest.pebblepad.com/login/openid/authorise"
}


Australia

{
    "title": "PebblePad",
    "scopes": [
        "https://purl.imsglobal.org/spec/lti-ags/scope/score",
        "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"
    ],
    "extensions": [
        {
            "domain": "lti1p3.pebblepad.com.au",
            "tool_id": "pebblepad",
            "platform": "canvas.instructure.com",
            "settings": {
                "text": "PebblePad LTI 1.3",
                "icon_url": "https://tinyurl.com/ppplus",
                "platform": "canvas.instructure.com",
                "placements": [
                    {
                        "text": "PebblePad ATLAS LTI 1.3",
                        "enabled": true,
                        "icon_url": "https://tinyurl.com/ppatlas",
                        "placement": "assignment_selection",
                        "message_type": "LtiResourceLinkRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.com.au/login/openid/redirect"
                    },
                    {
                        "text": "PebblePad Resources LTI 1.3",
                        "enabled": true,
                        "placement": "editor_button",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.com.au/login/openid/redirect"
                    },
                    {
                        "enabled": true,
                        "placement": "course_navigation",
                        "message_type": "LtiResourceLinkRequest",
                        "windowTarget": "_blank",
                        "target_link_uri": "https://lti1p3.pebblepad.com.au/login/openid/redirect"
                    }
                ],
                "selection_width": 800,
                "selection_height": 600
            },
            "privacy_level": "public"
        }
    ],
    "public_jwk": {},
    "description": "PebblePad",
    "custom_fields": {
        "canvas_user_id": "$Canvas.user.id",
        "canvas_course_id": "$Canvas.course.id",
        "canvas_account_id": "$Canvas.account.id",
        "canvas_api_domain": "$Canvas.api.baseUrl",
        "canvas_assignment_id": "$Canvas.assignment.id",
        "canvas_user_login_id": "$User.username",
        "lis_person_name_full": "$Person.name.full",
        "lis_person_name_given": "$Person.name.given",
        "custom_pebble_username": "$Canvas.user.loginId",
        "lis_person_name_family": "$Person.name.family",
        "lis_person_contact_email_primary": "$Person.email.primary"
    },
    "privacy_level": "public",
    "public_jwk_url": "https://lti1p3.pebblepad.com.au/login/{Organisation ID}/.well-known/jwks.json",
    "target_link_uri": "https://lti1p3.pebblepad.com.au/login/openid/redirect",
    "oidc_initiation_url": "https://lti1p3.pebblepad.com.au/login/openid/authorise"
}


Canada

{
    "title": "PebblePad",
    "scopes": [
        "https://purl.imsglobal.org/spec/lti-ags/scope/score",
        "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"
    ],
    "extensions": [
        {
            "domain": "lti1p3.pebblepad.ca",
            "tool_id": "pebblepad",
            "platform": "canvas.instructure.com",
            "settings": {
                "text": "PebblePad LTI 1.3",
                "icon_url": "https://tinyurl.com/ppplus",
                "platform": "canvas.instructure.com",
                "placements": [
                    {
                        "text": "PebblePad ATLAS LTI 1.3",
                        "enabled": true,
                        "icon_url": "https://tinyurl.com/ppatlas",
                        "placement": "assignment_selection",
                        "message_type": "LtiResourceLinkRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.ca/login/openid/redirect"
                    },
                    {
                        "text": "PebblePad Resources LTI 1.3",
                        "enabled": true,
                        "placement": "editor_button",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.ca/login/openid/redirect"
                    },
                    {
                        "enabled": true,
                        "placement": "course_navigation",
                        "message_type": "LtiResourceLinkRequest",
                        "windowTarget": "_blank",
                        "target_link_uri": "https://lti1p3.pebblepad.ca/login/openid/redirect"
                    }
                ],
                "selection_width": 800,
                "selection_height": 600
            },
            "privacy_level": "public"
        }
    ],
    "public_jwk": {},
    "description": "PebblePad",
    "custom_fields": {
        "canvas_user_id": "$Canvas.user.id",
        "canvas_course_id": "$Canvas.course.id",
        "canvas_account_id": "$Canvas.account.id",
        "canvas_api_domain": "$Canvas.api.baseUrl",
        "canvas_assignment_id": "$Canvas.assignment.id",
        "canvas_user_login_id": "$User.username",
        "lis_person_name_full": "$Person.name.full",
        "lis_person_name_given": "$Person.name.given",
        "custom_pebble_username": "$Canvas.user.loginId",
        "lis_person_name_family": "$Person.name.family",
        "lis_person_contact_email_primary": "$Person.email.primary"
    },
    "privacy_level": "public",
    "public_jwk_url": "https://lti1p3.pebblepad.ca/login/{Organisation ID}/.well-known/jwks.json",
    "target_link_uri": "https://lti1p3.pebblepad.ca/login/openid/redirect",
    "oidc_initiation_url": "https://lti1p3.pebblepad.ca/login/openid/authorise"
}



United Kingdom

{
    "title": "PebblePad",
    "scopes": [
        "https://purl.imsglobal.org/spec/lti-ags/scope/score",
        "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"
    ],
    "extensions": [
        {
            "domain": "lti1p3.pebblepad.co.uk",
            "tool_id": "pebblepad",
            "platform": "canvas.instructure.com",
            "settings": {
                "text": "PebblePad LTI 1.3",
                "icon_url": "https://tinyurl.com/ppplus",
                "platform": "canvas.instructure.com",
                "placements": [
                    {
                        "text": "PebblePad ATLAS LTI 1.3",
                        "enabled": true,
                        "icon_url": "https://tinyurl.com/ppatlas",
                        "placement": "assignment_selection",
                        "message_type": "LtiResourceLinkRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.co.uk/login/openid/redirect"
                    },
                    {
                        "text": "PebblePad Resources LTI 1.3",
                        "enabled": true,
                        "placement": "editor_button",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.co.uk/login/openid/redirect"
                    },
                    {
                        "enabled": true,
                        "placement": "course_navigation",
                        "message_type": "LtiResourceLinkRequest",
                        "windowTarget": "_blank",
                        "target_link_uri": "https://lti1p3.pebblepad.co.uk/login/openid/redirect"
                    }
                ],
                "selection_width": 800,
                "selection_height": 600
            },
            "privacy_level": "public"
        }
    ],
    "public_jwk": {},
    "description": "PebblePad",
    "custom_fields": {
        "canvas_user_id": "$Canvas.user.id",
        "canvas_course_id": "$Canvas.course.id",
        "canvas_account_id": "$Canvas.account.id",
        "canvas_api_domain": "$Canvas.api.baseUrl",
        "canvas_assignment_id": "$Canvas.assignment.id",
        "canvas_user_login_id": "$User.username",
        "lis_person_name_full": "$Person.name.full",
        "lis_person_name_given": "$Person.name.given",
        "custom_pebble_username": "$Canvas.user.loginId",
        "lis_person_name_family": "$Person.name.family",
        "lis_person_contact_email_primary": "$Person.email.primary"
    },
    "privacy_level": "public",
    "public_jwk_url": "https://lti1p3.pebblepad.co.uk/login/{Organisation ID}/.well-known/jwks.json",
    "target_link_uri": "https://lti1p3.pebblepad.co.uk/login/openid/redirect",
    "oidc_initiation_url": "https://lti1p3.pebblepad.co.uk/login/openid/authorise"
}


United States of America

{
    "title": "PebblePad",
    "scopes": [
        "https://purl.imsglobal.org/spec/lti-ags/scope/score",
        "https://purl.imsglobal.org/spec/lti-nrps/scope/contextmembership.readonly"
    ],
    "extensions": [
        {
            "domain": "lti1p3.pebblepad.com",
            "tool_id": "pebblepad",
            "platform": "canvas.instructure.com",
            "settings": {
                "text": "PebblePad LTI 1.3",
                "icon_url": "https://tinyurl.com/ppplus",
                "platform": "canvas.instructure.com",
                "placements": [
                    {
                        "text": "PebblePad ATLAS LTI 1.3",
                        "enabled": true,
                        "icon_url": "https://tinyurl.com/ppatlas",
                        "placement": "assignment_selection",
                        "message_type": "LtiResourceLinkRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.com/login/openid/redirect"
                    },
                    {
                        "text": "PebblePad Resources LTI 1.3",
                        "enabled": true,
                        "placement": "editor_button",
                        "message_type": "LtiDeepLinkingRequest",
                        "target_link_uri": "https://lti1p3.pebblepad.com/login/openid/redirect"
                    },
                    {
                        "enabled": true,
                        "placement": "course_navigation",
                        "message_type": "LtiResourceLinkRequest",
                        "windowTarget": "_blank",
                        "target_link_uri": "https://lti1p3.pebblepad.com/login/openid/redirect"
                    }
                ],
                "selection_width": 800,
                "selection_height": 600
            },
            "privacy_level": "public"
        }
    ],
    "public_jwk": {},
    "description": "PebblePad",
    "custom_fields": {
        "canvas_user_id": "$Canvas.user.id",
        "canvas_course_id": "$Canvas.course.id",
        "canvas_account_id": "$Canvas.account.id",
        "canvas_api_domain": "$Canvas.api.baseUrl",
        "canvas_assignment_id": "$Canvas.assignment.id",
        "canvas_user_login_id": "$User.username",
        "lis_person_name_full": "$Person.name.full",
        "lis_person_name_given": "$Person.name.given",
        "custom_pebble_username": "$Canvas.user.loginId",
        "lis_person_name_family": "$Person.name.family",
        "lis_person_contact_email_primary": "$Person.email.primary"
    },
    "privacy_level": "public",
    "public_jwk_url": "https://lti1p3.pebblepad.com/login/{Organisation ID}/.well-known/jwks.json",
    "target_link_uri": "https://lti1p3.pebblepad.com/login/openid/redirect",
    "oidc_initiation_url": "https://lti1p3.pebblepad.com/login/openid/authorise"
}


Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article