This article is for DEVELOPERS and PARTNERS who are integrating Snapplify Engage into an existing solution (e.g. an LMS).


Snapplify is a registered IMS Global partner and supports Learning Tools Interoperability version 1.3 (LTI). Snapplify's Engage Launch API follows the IMS Global Learning Consortium's LTI integration and security framework (1EdTech)

Learning Tools Interoperability is an industry-best, secure method for Snapplify Education partners to integrate with Engage (Snapplify's e-learning platform and education marketplace). 

This API enables the following: 

  • A user is registered for Engage and logged in to a specific Engage instance on launch.

  • A user is launched from Engage into your tool and is registered and logged in


The API supports custom parameters that enable the following: 

  • A user is automatically added to a designated group in Engage.

  • A user is automatically allocated any content prescribed to the designated group in Engage.

  • A user is automatically prompted to complete the purchase of any prescribed content they have been allocated.

    or

  • A user is provisioned titles that have been prepurchased from a pool of available titles


We currently support LTI 1.0 Launch / LTI 1.3 Deep link for 'External into Snapplify' flow, and OAuth2 / LTI for 'Snapplify to External' flow integration.


To review the documentation associated with the LTI Launch standard, please see the LTI Launch Spec.


Endpoints

Once you’ve set up your API keys in Engage, you can easily implement the launch API using the following endpoint:

Endpoint: The endpoint can be any URL to your Engage instance. After the launch process is completed, the user will be redirected to the endpoint used in the initial launch (e.g. https://myengage.snapplify.com/home/reading).

Method: POST
Content type: application/x-www-form-urlencoded


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. johndoes@email.com

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 (not the lack of /api')
{"error":"unauthorized","error_description":"Full authentication is required to access this resource"}


Practical considerations

  • Groups and prescribed lists must be set up and published in Engage in order to enable auto-assignment to a group and auto-allocation of content via the launch API. 
  • The use of the custom Snapplify parameter in the launch request “custom_snapplify_group_id” can be used to automatically add a user to a specific group within your Snapplify instance.


If you do use this endpoint, the user will be redirected to the order confirmation screen if there are prescribed assets available for purchase. 


Need help? Use the live chat in the bottom right corner of your screen or email us at help@snapplify.com.