Example Django application using the django-lti-provider library.
-
Clone
git clone https://github.com/ccnmtl/django-lti-provider-example.git cd django-lti-provider
-
Create the database
For Postgres:
- Create a database user/password (if needed)
- Create the database
createdb djangoltiproviderexample
-
Customize settings
-
Create a local_settings.py file in the
djangoltiproviderexample
subdirectory OR -
Copy
djangoltiproviderexample/local_settings.py.example
todjangoltiproviderexample/local_settings.py
-
Then, override the variables from
settings_shared.py
that you need to customize for your local installation.- Specify ALLOWED_HOSTS = [ 'localhost', '.your.blackboard.or.moodle.domain', '.your.workstation.domain', ]
-
The
PYLTI_CONFIG
variable in yourlocal_settings.py
configures the application consumers and secrets. Generate two long random numbers for these values.PYLTI_CONFIG = { 'consumers': { '<random number string>': { 'secret': '<random number string>' } } }
-
-
Build the virtual environment
make
will build the virtualenv -
Migrate the database
./manage.py migrate
-
Run
make runserver
Canvas installation happens in two steps. First, as a Canvas admin-level user, you must install the LTI tool's Developer Key. Then, as a Course admin, you install the LTI App within the course.
In Canvas, go to Settings -> Developer Keys. Click "+ Developer Key", and choose LTI Key.
Fill out the following fields:
- Key Name: django-lti-provider-example
- Owner Email: your email
- Method: Manual Entry
- Title: (tool title)
- Description: (short description)
- Redirect URIs:
https://<your hostname>/lti/launch/
- Target Link URI
https://<your hostname>/lti/launch/
- OpenID Connect Initiation Url:
https://<your hostname>/lti/login/
- JWK Method: Public JWK
- Public JWK: (JSON contents of
/lti/jwks/
route) - LTI Advantage Services: ?
- Placements: ?
Select LtiDeepLinkingRequest where possible, as this allows for deeper integration.
In Canvas, go to Settings -> Apps. Click "View App Configurations". Click "+ App" to add a new App.
- Configuration Type: By Client ID
- Client ID: (Client ID from the Developer Keys Details column). This will look something like: 43060000000000260
- Click Install to install the app. Now you can click the gear icon to see this app's Deployment Id, which will be added to the config.json.
You should now see your app present in the left-hand menu in Canvas's course page, if the right placement setting was selected when it was installed.
More info is here, which may be helpful:
- https://community.canvaslms.com/docs/DOC-13117-415274482
- Note: the URL to enter in these steps will be
https://<app hostname>/lti/config.xml
- Note: the URL to enter in these steps will be
- LTI 1.3 Canvas configuration docs: https://github.com/dmitry-viskov/pylti1.3/wiki/Configure-Canvas-as-LTI-1.3-Platform