This document provides a technical reference for integrating Snapplify Engage with Learning Tools Interoperability (LTI) 1.3. This integration allows Snapplify Engage to be launched from a Learning Management System (LMS) or vice versa, enabling seamless interoperability between platforms.
LTI 1.3 Endpoints
LTI 1.3 integration relies on OAuth 2.0 and JSON Web Tokens (JWT) for secure authentication. Below are the key endpoints used in the integration:
Authentication and Token Endpoints
- Authentication Request URL: https://customerinstance.snapplify.com/app/auth
- Access Token Service URL: https://customerinstance.snapplify.com/lti/token
- Public Keyset URL: https://auth.snapplify.com/.well-known/jwtks.json
Example JWT Payload (Sent by Engage):
{ "sub": "1", "iss": "https://customerinstance.snapplify.com", "aud": "tool.example.com", "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "GdAfGG0amcXvlplVND3pNoWVwtPwFpe6", "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0", "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest", "https://purl.imsglobal.org/spec/lti/claim/target_link_uri": "https://tool.example.com/launch", "https://snapplify.com/user": { "id": 1, "email": "[email protected]", "name": "Alex Smith", "username": "[email protected]" } }
LTI 1.0 Endpoints
LTI 1.0 integration uses a shared secret for authentication and transmits data via an HTTP POST request.
Launch Endpoint:
- Launch URL: https://tool.example.com/platform
Example HTTP POST Payload (Sent by Engage):
Parameter | Example Value | Description |
---|---|---|
context_id | 1 | Identifier for the learning context (e.g., classroom). |
context_label | Snapplify High School | Short label for the context. |
lis_person_contact_email_primary | [email protected] | User's primary email address. |
roles | student | User role in the context (e.g., student, instructor). |
oauth_signature_method | HMAC-SHA1 | Signature method for verification. |
tool_consumer_info_product_family_code | engage | Engage as the product family code. |
user_id | [email protected] | Unique identifier for the user. |
To review the documentation associated with the LTI Launch standard, please see the LTI Launch Spec.
Parameters
Use these parameters to implement the launch API:
Errors
Errors that occur with any parameter will redirect the user to an access prohibited screen. The most common error we encounter: using the incorrect URL for the 'userinfo' request.
- Correct URL: https://auth.snapplify.com/api/userinfo
- Incorrect URL: https://auth.snapplify.com/userinfo (note the lack of /api')
{"error":"unauthorized","error_description":"Full authentication is required to access this resource"}
Common Errors:
Error Code | Description |
400 | Bad Request – Missing or invalid parameters. |
401 | Unauthorized – Invalid credentials or signature. |
403 | Forbidden – User does not have access. |
500 | Internal Server Error – Unexpected error in Engage. |
For debugging, check the JWT payload, OAuth signature, and request parameters to ensure correct formatting and validity before retrying the request.
Need help? Use the live chat in the bottom right corner of your screen or email us at [email protected].