LTI Launch Requests
Signin / Signup Students with LTI Launch Requests
Once your app is registered with StudyReel, you need to prepare to be able to handle LTI launch requests from StudyReel. When a user wants to access your app in StudyReel, we will send an LTI launch request to the Launch URL provided in the tool registration API call. It will be sent as a JSON object and will have all the information required for you to sign up a student to your app if they don’t have an account already, or log them in if they do. This request will be sent each time the user wants to use your app within StudyReel.
This is the request StudyReel will send to your launch URL:
HTTP Method: POST
Endpoint URL: https://myawesometool.com/launch
Launch Request
Headers
Content-Type
application/json
Example body payload:
{
"messageType": "LtiResourceLinkRequest",
"version": "1.3.0",
"resourceLink": {
"id": "default"
},
"iss": "https://studyreel.alpha1edtech.com",
"deployment_id": "U3BhcnNoJ3MgdGVzdCBhcHAgNjoxLjM=",
"target_link_uri": "studyreel://learn",
"role": "Student",
"sub": "student@studyreel.com",
"given_name": "John",
"family_name": "Doe",
"nonce": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsd",
"iat": "2024-09-19 03:14:07",
"exp": "2024-09-19 04:14:07",
"jti": "4556",
"studyreel_grade_math": "5",
"studyreel_grade_language": "5",
"studyreel_grade_science": "6",
"studyreel_grade_reading": "null",
"age_grade": "5",
"user_acquisition_source": "StudyReel",
"map_rit_math": "190",
"map_rit_language": "170",
"map_rit_science": "180",
"map_rit_reading": "null"
}
messageType
LTI claim type indicating that this is a resource link request
version
Indicating the LTI version being used
resourceLink
A unique identifier for the resource, such as a specific assignment or course module; in most cases, it will have a default value, such as "id": "default"
iss
StudyReel issuer URL
deployment_id
Unique deployment ID identifying the instance of your tool being used
target_link_uri
The URL in your app where the student should land after the LTI launch, as specified during LTI registration. By default this will be set to studyreel://learn which will be then replaced by the URL you return.
role
The role of the user
sub
The unique student ID from StudyReel
given_name
First name of the student
family_name
Family name of the student
nonce
A random string to prevent replay attacks
iat
Issued at time (timestamp)
exp
Expiration time (timestamp)
jti
Unique token identifier
studyreel_grade_math
Math proficiency of a student in terms of grade
studyreel_grade_language
Language proficiency of a student in terms of grade
studyreel_grade_science
Science proficiency of a student in terms of grade
studyreel_grade_reading
Reading proficiency of a student in terms of grade, null indicates no measured proficiency
user_acquisition_source
StudyReel
map_rit_math
MAP Growth Screener assessment’s RIT score for Math
map_rit_language
MAP Growth Screener assessment’s RIT score for Language
map_rit_science
MAP Growth Screener assessment’s RIT score for Science
map_rit_reading
MAP Growth Screener assessment’s RIT score for Reading, null indicates no recorded score
Expected Response
{
"status": "success",
"message": "Student signed up and login token generated.",
"userID": "students_user_id_in_your_app",
"userType": "new",
"loginLink": "https://yourapp.com/learn?token=wew878few7fe8w"
}
Request handling
The app should accept the LTI launch request and automatically create a student account if none exists, based on the provided
sub
andstudyreel_grade
properties.Roster the student in the appropriate app learning path based on the provided parameters.
The app should send a response to Study Reel with a login/magic link with the required parameters to login the student to your app such as login_token.
Last updated