Hello,
I am trying to setup my Bubble App as a LTI plugin with Canvas LMS. I am using my agency’s Canvas account and I have admin privilege.
Key Settings:
Redirect: https://paramedicine101.bubbleapps.io/version-test/lti_launch
LTI 1.3 Config:
{
"title": "Training Events App",
"description": "A tool for managing and enrolling in training events",
"oidc_initiation_url": "https://paramedicine101.bubbleapps.io/version-test/oidc_login",
"target_link_uri": "https://paramedicine101.bubbleapps.io/version-test/lti_launch",
"public_jwk_url": "https://0e01b48f9dd0606b1443b0fc4fcb3899.cdn.bubble.io/f1717283383056x150964476411423520/jwks.json?_gl=1*1x54wrk*_gcl_aw*R0NMLjE3MTM3ODk2MzguQ2owS0NRandsWml4QmhDb0FSSXNBSUM3NDVDXzI5aVVCNV9rbmktYjBTcGtZNHY2ckNqUE8xQlR3VXBvOUx3RHFJSnFJOVU2NV9BZWlQb2FBcG82RUFMd193Y0I.*_gcl_au*MjQwMDc4MjY4LjE3MTI2NzQ2ODg.*_ga*OTY5ODg5MzY1LjE3MTI2NzQ2ODg.*_ga_BFPVR2DEE2*MTcxNzI0NzcwOC40MC4xLjE3MTcyODM0MTQuNTguMC4w",
"client_id": "250400000000000001",
"login_url": "https://paramedicine101.bubbleapps.io/version-test/login",
"redirect_uris": [
"https://paramedicine101.bubbleapps.io/version-test/lti_launch"
],
"scopes": [
"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem",
"https://purl.imsglobal.org/spec/lti-ags/scope/lineitem.readonly",
"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://canvas.instructure.com/lti/public_jwk/scope/update",
"https://canvas.instructure.com/lti/account_lookup/scope/show",
"https://canvas.instructure.com/lti-ags/progress/scope/show",
"https://canvas.instructure.com/lti/account_external_tools/scope/create",
"https://canvas.instructure.com/lti/account_external_tools/scope/destroy",
"https://canvas.instructure.com/lti/account_external_tools/scope/list",
"https://canvas.instructure.com/lti/account_external_tools/scope/show",
"https://canvas.instructure.com/lti/account_external_tools/scope/update",
"https://canvas.instructure.com/lti/data_services/scope/create",
"https://canvas.instructure.com/lti/data_services/scope/show",
"https://canvas.instructure.com/lti/data_services/scope/update",
"https://canvas.instructure.com/lti/data_services/scope/list",
"https://canvas.instructure.com/lti/data_services/scope/destroy",
"https://canvas.instructure.com/lti/data_services/scope/list_event_types",
"https://canvas.instructure.com/lti/feature_flags/scope/show",
"http://canvas.instructure.com/lti/page_content/show",
"https://canvas.instructure.com/lti/replace_editor_contents"
],
"custom_fields": {
"user_id": "$User.id",
"course_id": "$Course.id"
},
"extensions": [
{
"platform": "canvas.instructure.com",
"settings": {
"placements": [
{
"text": "Training Events",
"placement": "course_navigation",
"message_type": "LtiResourceLinkRequest",
"target_link_uri": "https://paramedicine101.bubbleapps.io/version-test/lti_launch"
}
]
}
}
]
}
Client_ID: 250400000000000001
When I try this URL to get an access code: '[https://canvas.instructure.com/login/oauth2/auth?client_id=250400000000000001&response_type=code&red...](https://canvas.instructure.com/login/oauth2/auth?client_id=250400000000000001&response_type=code&redirect_uri=https://paramedicine101.bubbleapps.io/version-test/lti_launch&scope=url:GET|)/api/v1/courses url:POST|/api/v1/courses url:GET|/api/v1/users/self url:GET|/api/v1/accounts/self url:GET|/api/v1/assignments&state=sample_state'
I get the correct redirect, but returned with this URL: '[https://paramedicine101.bubbleapps.io/version-test/lti_launch?error=unauthorized_client&error_descri...](https://paramedicine101.bubbleapps.io/version-test/lti_launch?error=unauthorized_client&error_description=Client+does+not+have+access+to+the+specified+Canvas+account.&state=sample_state%27)
Can someone point me in the right direction?