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):


ParameterExample ValueDescription
context_id1Identifier for the learning context (e.g., classroom).
context_labelSnapplify High SchoolShort label for the context.
lis_person_contact_email_primary[email protected]User's primary email address.
rolesstudentUser role in the context (e.g., student, instructor).
oauth_signature_methodHMAC-SHA1Signature method for verification.
tool_consumer_info_product_family_codeengageEngage 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:


Parameter

Opt

Value

Description

lti_message_type

N

basic-lti-launch-request

Must be as specified.

lti_version

N

LTI-1p0

Must be as specified.

launch_presentation_locale

N

EN-US

Must be as specified.

tool_consumer_instance_guid

Y

See LTI spec.

Customer provided.

tool_consumer_instance_name

N

See LTI spec.

Customer provided.

tool_consumer_instance_description

N

See LTI spec.

Customer provided.

tool_consumer_instance_contact_email

Y

See LTI spec.

Customer provided.

tool_consumer_info_version

N

See LTI spec.

Customer provided.

tool_consumer_info_product_family_code

Y

See LTI spec.

Customer provided.

context_id

Y

See LTI spec.

Customer provided.

context_title

Y

See LTI spec.

Customer provided.

context_label

Y

See LTI spec.

Customer provided.

context_type

Y

See LTI spec.

Customer provided.

resource_link_title

Y

See LTI spec.

Customer provided.

resource_link_id

Y

See LTI spec.

Customer provided.

resource_link_description

Y

See LTI spec.

Customer provided.

lis_outcome_service_url

Y

See LTI spec.

Customer provided.

lis_course_offering_sourcedid

Y

See LTI spec.

Customer provided.

lis_course_section_sourcedid

Y

See LTI spec.

Customer provided.

user_id

N


Customer provided. Unique user hash used to identify the user on the customer LMS.

roles

N


Customer provided. Standard LTI roles syntax.

lis_person_name_given

N

e.g. John

Customer provided.

lis_person_name_family

N

e.g. Doe

Customer provided.

lis_person_name_full

N

e.g. John Doe

Customer provided.

lis_person_contact_email_primary

N

e.g. [email protected]

Customer provided.

lis_person_sourcedid

N

e.g. 1

Customer provided. Unique user ID within your platform.

lis_result_sourcedid

N

See LTI spec.

Customer provided. LIS Result Identifier.

custom_snapplify_group_id

Y

e.g. 33123

Customer provided. Snapplify Group Id. Auto joining.

oauth_version

N

1.0

Must be as specified.

oauth_callback

N

about:blank

Must be as specified.

oauth_nonce

N

701b412b

Customer provided. A random unique UUID.

oauth_timestamp

N

1632398148

The unix timestamp.

oauth_signature_method

N

HMAC-SHA1

Must be as specified.

oauth_consumer_key

N

mytool.com

Your Snapplify API key (e.g. mytool.com).

oauth_signature

N

[GENERATED]

The generated oauth signature using the Snapplify API Secret.


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 CodeDescription
400Bad Request – Missing or invalid parameters.
401Unauthorized – Invalid credentials or signature.
403Forbidden – User does not have access.
500Internal 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].