Skip to main content

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

FeatureStatus
LTI Assignment & Grade Services (AGS)Not implemented — use REST grade sync
Deep LinkingNot implemented — add links manually in modules
Dynamic registrationManual developer key required
Per-exam launch routingAll 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 fieldValue
Key nameCoraltalk
OpenID Connect Initiation UrlBASE_URL/api/lti/login
Target Link URIBASE_URL/api/lti/launch
JWK MethodPublic JWK URL
Public JWK URLBASE_URL/api/lti/jwks
Redirect URIsBASE_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:

EnvironmentIssuer example
Canvas Cloudhttps://canvas.instructure.com
Institution-hostedhttps://your-school.instructure.com

Step 2: Register platform in Coraltalk

  1. Sign in as a teacher.
  2. Open the target classIntegrations.
  3. Review URLs on the Canvas LTI 1.3 Launch card.
  4. Click Register Canvas platform.
  5. Enter Canvas issuer and Developer key client ID.
  6. 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/jwks returns 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 roleCoraltalk
Instructor / TeacherClass oral learning or integrations
Student / LearnerStudent home for linked class

Launch errors

SymptomLikely fix
Platform not registeredMatch issuer + client ID in Integrations
Invalid target_link_uriTarget Link URI must be BASE_URL/api/lti/launch
Expired LTI stateRetry launch; check server clock and secrets
JWT verification failureRe-check issuer and JWKS URL
Missing emailAdjust Canvas tool privacy to share email
Missing default classRe-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.