Canvas LTI 1.3 launch
Configure Coraltalk as an LTI 1.3 tool in Canvas so teachers and students open Coraltalk from a course with single sign-on — no separate password for each launch.
Coraltalk also supports a Canvas REST API connection for importing materials and grade sync. LTI and REST API work together.
What LTI provides
- Launch from course navigation or modules (external tool)
- Automatic sign-in via secure Canvas handoff
- User provisioning on first launch (instructor vs student)
What LTI does not provide yet
| Feature | Status |
|---|---|
| LTI Assignment & Grade Services (AGS) | Not implemented — use REST grade sync |
| Deep Linking | Not implemented — add links manually in modules |
| Dynamic registration | Manual developer key required |
| Per-exam launch routing | All launches use class-level destinations |
Prerequisites
- Coraltalk deployed at a stable public URL (e.g.
https://app.coraltalk.com) - Canvas admin access to create LTI Developer Keys
- A Coraltalk teacher account and at least one class for student mapping
Replace BASE_URL below with your public app URL (for example https://app.coraltalk.com).
Step 1: Canvas developer key
In Canvas Admin → Developer Keys → + Developer Key → LTI Key (Manual Entry):
| Canvas field | Value |
|---|---|
| Key name | Coraltalk |
| OpenID Connect Initiation Url | BASE_URL/api/lti/login |
| Target Link URI | BASE_URL/api/lti/launch |
| JWK Method | Public JWK URL |
| Public JWK URL | BASE_URL/api/lti/jwks |
| Redirect URIs | BASE_URL/api/lti/launch |
Enable placements such as Course navigation and Assignment selection as needed.
Save and copy the Client ID.
Issuer URL
Must match Canvas exactly:
| Environment | Issuer example |
|---|---|
| Canvas Cloud | https://canvas.instructure.com |
| Institution-hosted | https://your-school.instructure.com |
Step 2: Register platform in Coraltalk
- Sign in as a teacher.
- Open the target class → Integrations.
- Review URLs on the Canvas LTI 1.3 Launch card.
- Click Register Canvas platform.
- Enter Canvas issuer and Developer key client ID.
- Save.
Register from the class students should land in — registration stores that class as the default for student launches.
Step 3: Install tool in Canvas
Account level: Admin → Settings → Apps → + App → By Client ID.
Course level: Course → Settings → Apps → add tool → place in Modules as External Tool or navigation.
Step 4: Test launch
Checklist:
-
BASE_URL/api/lti/jwksreturns public keys JSON - Platform shows registered in Coraltalk Integrations
- Developer key is ON in Canvas
- Teacher launch opens oral learning or integrations
- Student launch opens the linked class
- No manual email/password required
Expected destinations
| Canvas role | Coraltalk |
|---|---|
| Instructor / Teacher | Class oral learning or integrations |
| Student / Learner | Student home for linked class |
Launch errors
| Symptom | Likely fix |
|---|---|
| Platform not registered | Match issuer + client ID in Integrations |
| Invalid target_link_uri | Target Link URI must be BASE_URL/api/lti/launch |
| Expired LTI state | Retry launch; check server clock and secrets |
| JWT verification failure | Re-check issuer and JWKS URL |
| Missing email | Adjust Canvas tool privacy to share email |
| Missing default class | Re-register from correct class Integrations page |
Privacy listing (EduAppCenter)
For Canvas catalog submission use:
- Privacy policy:
https://www.coraltalk.com/privacy-policy - Terms:
https://www.coraltalk.com/terms-and-conditions - Support: support@coraltalk.com
Each school still registers their Canvas client ID in Coraltalk unless you operate centralized multi-tenant keys.