GoReact partners can integrate with GoReact through Learning Tools Interoperability (LTI) v1.1 specification. With this integration, you don’t ever have to send users to another platform or tool. Instead, you can embed GoReact right into your course materials as a streamlined and seamless teaching and learning experience.
We’re always pushing the interoperability envelope to include everything from a simple user launch to custom GoReact learning experiences, all based on open standards.
LTI standard prescribes a way to easily and securely connect tools with platforms like learning management systems (LMS), portals, and learning object repositories in a secure and standard manner, without the need for extensive custom programming. LTI is comprised of a central core and optional services to add optional features and functions. The LTI core establishes a secure connection and confirms the tool’s authenticity while the extensions add features like the exchange of assignment and grade data between GoReact and your LMS gradebook. This guide details required, optional, and custom parameters used to securely connect to the GoReact tool.
The most basic launch of GoReact is a POST request to the launch URL https://lti.goreact.com/lti/v1 with the parameters described below, properly signed using OAuth. The most common launch approach will be for the tool consumer to emit a form to the browser and then include code to automatically submit the form to the launch URL.
tool_consumer_info_product_family_code LMS or System Name Used to identify the LMS e.g. "tool_consumer_info_product_family_code": "Canvas"
tool_consumer_instance_guid Unique ID Used to identify a unique school/organization. Ideally, this should be a V4 UUID. It is important that this ID never changes. e.g. "tool_consumer_instance_guid": "9920bcb7-c54c-4a19-bb2e-a351b2b932ad"
tool_consumer_instance_name School or Organization Name Used to identify the organization name e.g. "tool_consumer_instance_name": "University of GoReact"
user_id Unique ID Used to identify a unique user e.g. "user_id": "2CQzyJluEk"
lis_person_name_given First Name Used to identify the user's first name e.g. "lis_person_name_given": "John"
lis_person_name_family Last Name Used to identify the user's last name e.g. "lis_person_name_family": "Doe"
lis_person_name_full Full Name Used to identify the user's full name e.g. "lis_person_name_full": "John Doe"
lis_person_contact_email_primary User Email Used to identify the user's email e.g. "lis_person_contact_email_primary": "email@example.com"
roles User Role Used to identify the user's GoReact role: Presenter, Reviewer, Instructor, Admin. See LIS Roles for naming conventions. e.g. "roles": "Instructor"
context_id Unique ID Used to identify a unique course e.g. "context_id": "YtS418BKZr"
context_title Course Name Used to identify the course name e.g. "context_title": "Public Speaking 101"
resource_link_id Unique ID Used to identify a unique assignment e.g. "resource_link_id": "KoxMcNBkyl"
resource_link_title Assignment Name Used to identify the assignment name e.g. "resource_link_title": "Informative Speech"
oauth_version 1.0 Used to identify which authentication version is implemented e.g. "oauth_version": "1.0"
oauth_nonce unique ID Used to ensure a secure integration e.g. "oauth_nonce": "MTU5MDY5NjA4Ng=="
oauth_timestamp unix timestamp Used to ensure a secure integration e.g. "oauth_timestamp": "1590696086"
oauth_consumer_key consumer key Used to ensure a secure integration e.g. "oauth_consumer_key": "d1015a16-c9c1-4539-afc2-0d6b3aebf364"
oauth_signature_method HMAC-SHA1 or HMAC-SHA256 Used to identify how the signature is generated e.g. "oauth_signature_method": "HMAC-SHA1"
oauth_signature Signature generated by oAuth Used to validate the launch request, parameters, and secret e.g. "oauth_signature": "Jq105Q7V6R3AZOKDj8zH/zJH1H4="
lti_version LTI-1p0 Used to identify the LTI version e.g. "lti_version": "LTI-1p0"
lti_message_type basic-lti-launch-request Used to identify a basic launch request e.g. "lti_message_type": "basic-lti-launch-request"
lis_outcome_service_url URL Used to pass grades to the LMS e.g. "lis_outcome_service_url": "https://lms.com/grades/336a2a"
lis_result_sourcedid Hash A unique hash across resource_link_id and user_id used to pass grades to the LMS e.g. "lis_result_sourcedid": "test-sourcedid-123"
launch_presentation_locale language variant Used to identify language settings e.g. "launch_presentation_locale": "en-US"
launch_presentation_return_url URL Used to return to the LMS e.g. "launch_presentation_return_url": "https://lms.com/return"
In addition to the standardized LTI parameters, you may include the following custom parameters to further customize your GoReact experience.
custom_goreact_partner_guid Unique ID Used to identify GoReact partners (required) e.g. "custom_goreact_partner_guid": "73816e50-7689-406a-be21-020b4a164a9a"
By omitting the two assignment parameters, you can launch Course-Level LTI to view all assignments at the same time. Please note that this must be enabled on GoReact's end prior to use. Once enabled, only Course-Level LTI can be used for the organization.
resource_link_id Omit Used to launch course-level LTI
resource_link_title Omit Used to launch course-level LTI
custom_filter_by_user_id Unique ID Used to show only the specified user's videos e.g. "custom_filter_by_user_id": "2CQzyJluEk"
custom_goreact_mode readonly Used to launch in read-only mode e.g. "custom_goreact_mode": "readonly"
Assignment Copy (Same Organization)
custom_resource_link_id_history string A value referencing a single pre-existing resource_link_id (assignment id) e.g. "custom_resource_link_id_history": "e7f646f4-de9e-4f3c-a774-cb28de5b7a7b"
custom_context_id_history string A value referencing a single pre-existing context_id (course id) e.g. "custom_context_id_history": "ddbc1bc6-c5c1-41da-b7d7-76df954319fe"
custom_resource_link_force_copy string A boolean value of true/false. By default, assignment copy is a one-time operation per assignment. This parameter can be used in conjunction with the history parameters to perform an ongoing copy per subsequent launch request. e.g. "custom_resource_link_force_copy": "true"
custom_resource_link_instructor_user_id string The user_id of the course instructor. This allows students to launch first into a course/assignment without requiring the aid of the instructor to set up the assignment settings first. This must be used in conjunction with the history parameters. e.g. "custom_resource_link_instructor_user_id": "d5f8f4b2-8361-49e9-9433-ecbaec8c0b38"
Assignment Copy (Cross-Organization)
In addition to the parameters listed above (Assignment Copy (Same Organization)), the two following parameters must be included.
custom_tool_consumer_info_product_family_code_history string A tool consumer info product family code value representing the source tool consumer info product family code under which the origin tool consumer instance, context and resource link exist. e.g. "custom_tool_consumer_info_product_family_code_history": "Canvas"
custom_tool_consumer_instance_guid_history string A tool consumer instance GUID value representing the source tool consumer instance under which both the origin context and resource link exist. e.g. "custom_tool_consumer_instance_guid_history": "6bc50be7-6b50-4df3-b5f0-784ce3227fc5"
custom_goreact_activity_type 'conversation' or 'conversation-board' Used to pre-select a supported assignment type. e.g. "custom_goreact_activity_type": "conversation"
custom_goreact_total_points_possible point value Used to auto-fill points possible. e.g. "custom_goreact_total_points_possible": "25"
Use the form below to test various launch scenarios. Some fields are read-only and are disabled.
"tool_consumer_info_product_family_code": "LMS name",
"tool_consumer_instance_name": "School Name",
"lis_person_name_full": "John Doe",
"context_title": "Course Name",
"resource_link_title": "Assignment Name",
Please note the following:
- In order to use GoReact in an iframe, the iframe must explicitly allow camera and microphone access i.e. <iframe allow="camera *; microphone *">
- The error message "GoReact is missing setup information," is shown if any of the required parameters are missing. If you expand the "Show Details" section, then you can view which parameter(s) are missing.
- The error message "the key/secret isn't correct," is shown if the key or secret is incorrect, or if the payload is signed incorrectly.
- You can analyze the payload by opening the browser developer tools to the "Network" tab and by finding or filtering for "v1."