### Custom Parameter for Start Time (Python) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Demonstrates setting a custom parameter, specifically 'xstart' for a start time, in Python. Custom parameters allow for extended functionality beyond the core LTI specification. ```python custom_xstart = "2017-04-21T01:00:00Z" ``` -------------------------------- ### Custom Parameter for Start Time (JSON) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index This JSON snippet shows how to include a custom parameter, 'xstart', within the LTI claims. This allows for passing specific application-defined data. ```json { "https://purl.imsglobal.org/spec/lti/claim/custom": { "xstart": "2017-04-21T01:00:00Z" } } ``` -------------------------------- ### Registering Custom Parameter for Context History (Configuration) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index This configuration example shows how a tool can register a custom parameter to track the history of context IDs during course copies. This allows the tool to be aware of its context's lineage and potentially copy course customizations. The `$Context.id.history` substitution parameter provides a comma-separated list of previous context IDs. ```text context_history=$Context.id.history ``` -------------------------------- ### Registering Custom Parameter for Resource Link History (Configuration) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index This configuration example demonstrates how a tool can register a custom parameter to capture the history of resource link IDs during course copies. This is crucial for tools that need to maintain state across copied courses when deep linking is not fully supported. The `ResourceLink.id.history` substitution parameter provides a comma-separated list of previous resource link IDs. ```text link_history=$ResourceLink.id.history ``` -------------------------------- ### LTI 1.1 vs 1.3 Platform Information Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Highlights the differences in platform identification. LTI 1.1 uses parameters prefixed with `tool_consumer_instance_`, while LTI 1.3 structures this under `https://purl.imsglobal.org/spec/lti/claim/tool_platform`, including fields like `product_family_code` which is new in LTI 1.3. ```python tool_consumer_instance_guid = "cen-01/a527c23f-8684-41bb-9292-2b274c229c32" tool_consumer_instance_contact_email = "support@platform.example.edu" tool_consumer_instance_description = "The LMS of Example University" tool_consumer_instance_name = "The LMS of Example University" tool_consumer_instance_url = "https://platform.example.edu" tool_consumer_info_version = "1.0" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/tool_platform": { "guid": "cen-01/a527c23f-8684-41bb-9292-2b274c229c32", "contact_email": "support@platform.example.edu", "description": "The LMS of Example University", "name": "The LMS of Example University", "url": "https://platform.example.edu", "product_family_code": "ExamplePlatformVendor-Product", "version": "1.0" } } ``` -------------------------------- ### LTI 1.1 vs 1.3 Launch Presentation Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Compares the launch presentation parameters. LTI 1.1 uses parameters like `launch_presentation_width`, while LTI 1.3 nests these under `https://purl.imsglobal.org/spec/lti/claim/launch_presentation`, standardizing field names and types (e.g., height/width as numbers). ```python launch_presentation_document_target = "iframe" launch_presentation_width = "320" launch_presentation_height = "240" launch_presentation_return_url = "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": { "document_target": "iframe", "height": 320, "width": 240, "return_url": "https://platform.example.edu/terms/201601/courses/7/sections/1/resources/2" } } ``` -------------------------------- ### LTI 1.1 vs 1.3 Course Context Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Demonstrates the representation of course information. LTI 1.1 uses flat parameters like `context_id` and `context_title`. LTI 1.3 nests this under the `https://purl.imsglobal.org/spec/lti/claim/context` claim with a more structured approach, including vocabulary URIs for context types. ```python context_id = "c1d887f0-a1a3-4bca-ae25-c375edcc131a" context_title = "CPS 435 Learning Analytics" context_label = "CPS 435" context_type = "CourseOffering" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/context": { "id": "c1d887f0-a1a3-4bca-ae25-c375edcc131a", "title": "CPS 435 Learning Analytics", "label": "CPS 435", "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseOffering"] } } ``` -------------------------------- ### LTI 1.1 vs 1.3 LIS Information Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Compares the representation of Learning Information Services (LIS) data. LTI 1.1 uses prefixed parameters like `lis_person_sourcedid`, while LTI 1.3 consolidates LIS information within the `https://purl.imsglobal.org/spec/lti/claim/lis` claim, allowing for more comprehensive data like course offering and section sourced IDs. ```python lis_person_sourcedid = "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/lis": { "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4", "course_offering_sourcedid": "example.edu:SI182-F16", "course_section_sourcedid": "example.edu:SI182-001-F16" } } ``` -------------------------------- ### LTI 1.1 vs 1.3 Roles Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Illustrates the evolution of role representation. LTI 1.1 uses simple string values for roles (e.g., 'student'), while LTI 1.3 employs URIs within the `https://purl.imsglobal.org/spec/lti/claim/roles` claim, allowing for more granular and standardized role definitions. ```python roles = "student" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/roles": [ "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student", "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner", "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor" ] } ``` -------------------------------- ### LTI 1.1 vs 1.3 Version Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Shows the differing ways the LTI specification version is indicated. LTI 1.1 uses a simple string like `LTI-1p1`, while LTI 1.3 specifies the version as `1.3.0` within the `https://purl.imsglobal.org/spec/lti/claim/version` claim. ```python lti_version = "LTI-1p1" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0" } ``` -------------------------------- ### LTI 1.1 vs 1.3 Resource Link Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Compares how resource link details are conveyed. LTI 1.1 uses parameters like `resource_link_id`, while LTI 1.3 places this information within the `https://purl.imsglobal.org/spec/lti/claim/resource_link` claim in the JWT. ```python resource_link_id = "A200d101f2c14" resource_link_description = "Assignment to introduce who you are" resource_link_title = "Introduction Assignment" ``` ```json { "https://purl.imsglobal.org/spec/lti/claim/resource_link": { "id": "200d101f-2c14-434a-a0f3-57c2a42369fd", "description": "Assignment to introduce who you are", "title": "Introduction Assignment" } } ``` -------------------------------- ### LTI Message Type for Basic Launch Request (Python) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index This snippet shows how to define the LTI message type for a basic launch request in Python. This is a fundamental setting for LTI communication. ```python lti_message_type = "basic-lti-launch-request" ``` -------------------------------- ### LTI 1.1 vs 1.3 Non-Claim Data Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Shows the differences in how non-claim user-related data is passed. LTI 1.1 uses prefixed parameters like `lis_person_name_full`, whereas LTI 1.3 consolidates this information into standard JWT claims like `name`, `given_name`, `family_name`, etc. ```python lis_person_name_full = "Ms Jane Marie Doe" lis_person_name_given = "Jane" lis_person_name_family = "Doe" lis_person_contact_email_primary = "jane@platform.example.edu" user_image = "https://platform.example.edu/jane.jpg" launch_presentation_locale = "en-US" ``` ```json { "name": "Ms Jane Marie Doe", "given_name": "Jane", "family_name": "Doe", "middle_name": "Marie", "picture": "https://platform.example.edu/jane.jpg", "email": "jane@platform.example.edu", "locale": "en-US" } ``` -------------------------------- ### LTI 1.1 vs 1.3 Authentication Data Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Compares the authentication data parameters used in LTI 1.1 (OAuth 1.0) with the claims present in an LTI 1.3 JSON Web Token (JWT). LTI 1.1 relies on OAuth for signature generation, while LTI 1.3 uses JWT claims for identity and authorization. ```python oauth_version = "1.0" oauth_nonce = "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771" oauth_timestamp = "1510185728" oauth_consumer_key = "12345" oauth_signature_method = "HMAC-SHA1" oauth_callback = "about:blank" oauth_signature = "TPFPK4u3NwmtLt0nDMP1G1zG30U=" ``` ```json { "iss": "https://platform.example.edu", "sub": "a6d5c443-1f51-4783-ba1a-7686ffe3b54a", "aud": ["292832126"], "exp": 1510185728, "iat": 1510185228, "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af", "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771" } ``` -------------------------------- ### LTI 1.1 vs 1.3 User ID Comparison Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index Illustrates how a user identifier is represented in LTI 1.1 and LTI 1.3. LTI 1.1 uses a simple string for `user_id`, while LTI 1.3 embeds the user's unique identifier within the `sub` (subject) claim of the JWT. ```python user_id = "4676-8317-719e225aacdd" ``` ```json { "sub": "4676-8317-719e225aacdd" } ``` -------------------------------- ### LTI Message Type for Resource Link Request (JSON) Source: https://www.imsglobal.org/spec/lti/v1p3/impl/index This JSON snippet illustrates how to specify the LTI message type as 'LtiResourceLinkRequest'. This is used when a resource link is launched within an LTI context. ```json { "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest" } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.