From c40178557656194c8d4a828f8090b5f1bfb51149 Mon Sep 17 00:00:00 2001 From: spearce Date: Thu, 12 Dec 2013 17:29:31 -0500 Subject: [PATCH] LTI revisions Revisions to LTI information based on feedback from Valera --- .../source/Images/AdvancedModulesEmpty.gif | Bin 8915 -> 9362 bytes docs/course_authors/source/create_lti.rst | 223 +++++++++--------- 2 files changed, 110 insertions(+), 113 deletions(-) diff --git a/docs/course_authors/source/Images/AdvancedModulesEmpty.gif b/docs/course_authors/source/Images/AdvancedModulesEmpty.gif index b3919919dc725592351ac8c1867e9798e7fe307a..2b007e9b224c41d035dd60ce7d0ec79babe0e380 100644 GIT binary patch delta 8503 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 +Introduction to LTI Components +------------------------------ + +You may have discovered or developed an external learning application +that you want to add to your online course. Or, you may have a digital +copy of your textbook that uses a format other than PDF. You can add +external learning applications or textbooks to Studio by using a +Learning Tools Interoperability (LTI) component. The LTI component is +based on the `IMS Global Learning Tools +Interoperability `_ version 1.1.1 specifications. You can use an LTI component in two ways. -- You can add external LTI content that is displayed only, such as textbook - content that doesn't require a student response. -- You can add external LTI content that requires a student response. An - external provider will grade student responses. +- You can add external LTI content that is displayed only, such as + textbook content that doesn’t require a student response. +- You can add external LTI content that requires a student response. An + external provider will grade student responses. -Before you create an LTI component from an external LTI provider in a unit, you must -have the following information so that you can register that provider. +Before you create an LTI component from an external LTI provider in a +unit, you need the following information. -- The **LTI ID**. This value is an internal string that specifies the external LTI - provider that you want to add to the course. (**SP: How does the user obtain this ID? - Does it have to be a certain length?**) - - The LTI ID can contain uppercase and lowercase alphanumeric characters, - as well as underscore characters (_). For example, your LTI ID may be (**SP: Can - you provide an example LTI ID?**). +- The **LTI ID**. This is a value that you create to refer to the external LTI + provider. You should create an LTI ID that you can remember easily. -- The **client key**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (**SP: Does the key have to - have a specific number of characters? Are all types of characters allowed?**) For - example, your client key may be (**SP: Can you provide an example?**). + The LTI ID can contain uppercase and lowercase alphanumeric + characters, as well as underscore characters (_). It can contain any + number of characters. For example, you may create an LTI ID that is + as simple as **test_lti_id**, or your LTI ID may be a string of + numbers and letters such as **id_21441** or + **book_lti_provider_from_new_york**. +- The **client key**. This value is a sequence of characters that you + obtain from the LTI provider. The client key is used for + authentication and can contain any number of characters. For example, + your client key may be **b289378-f88d-2929-ctools.umich.edu**. +- The **client secret**. This value is a sequence of characters that + you obtain from the LTI provider. The client secret is used for + authentication and can contain any number of characters. For example, + your client secret may be something as simple as **secret**, or it + may be a string of numbers and letters such as **23746387264** or + **yt4984yr8**. +- The **launch URL** (if the LTI component requires a student response + that will be graded). You obtain the launch URL from the LTI + provider. The launch URL is the URL that Studio sends to the external + LTI provider so that the provider can send back students’ grades. -- The **client secret**. This value is a string that is used for OAuth authentication. - You can obtain this value from the external LTI provider. (SP: **Does the secret have to - have a specific number of characters? Are all types of characters allowed?** For - example, your client key may be (**SP: Can you provide an example?**). - - -Create an LTI Component +Create an LTI Component ----------------------- Creating an LTI component in your course has three steps. - -#. Add LTI to the **advanced_modules** policy key. + +#. Add LTI to the **advanced_modules** policy key. #. Register the LTI provider. #. Create the LTI component in an individual unit. Step 1. Add LTI to the Advanced Modules Policy Key -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#. On the **Settings** menu, click **Advanced Settings**. +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +#. On the **Settings** menu, click **Advanced Settings**. #. On the **Advanced Settings** page, locate the **Manual Policy Definition** section, and then locate the **advanced_modules** policy key (this key is at the top of the list). - + .. image:: Images/AdvancedModulesEmpty.gif - + #. Under **Policy Value**, place your cursor between the brackets, and - then enter **"lti"**. Make sure to include the quotation marks, - but not the period. + then enter **“lti”**. Make sure to include the quotation marks, but + not the period. .. image:: Images/LTI_Policy_Key.gif - **Note** If the **Policy Value** field already contains text, place your cursor directly after the - closing quotation mark for the final item, and then enter a comma followed by **"lti"** (make sure that you - include the quotation marks). + **Note** If the **Policy Value** field already contains text, place your + cursor directly after the closing quotation mark for the final item, and + then enter a comma followed by **“lti”** (make sure that you include the + quotation marks). #. At the bottom of the page, click **Save Changes**. - The page refreshes automatically. At the top of the page, you see a - notification that your changes have been saved. +The page refreshes automatically. At the top of the page, +you see a notification that your changes have been saved. Step 2. Register the External LTI Provider -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -To regiser the external LTI provider, you'll add the LIT ID, the client key, and -the client secret in the **lti_passports** policy key. - -#. On the **Advanced Settings** page, locate the **lti_passports** policy key. +To regiser the external LTI provider, you’ll add the LIT ID, the client +key, and the client secret in the **lti_passports** policy key. +#. On the **Advanced Settings** page, locate the **lti_passports** + policy key. + #. Under **Policy Value**, place your cursor between the brackets, and - then enter the LTI ID, client key, and client secret in the following format. + then enter the LTI ID, client key, and client secret in the following + format (make sure to include the quotation marks and the colons). + + :: + + “lti_id:client_key:client_secret” - "{lti_id}:{client_key}:{client_secret}" - - For example, the value in the lti_passports field may be the following. - - "(**SP: Can you provide an example?**)" + For example, the value in the **lti_passports** field may be the following. + + :: + “test_lti_id:b289378-f88d-2929-ctools.umich.edu:secret” + If you have multiple LTI providers, separate the values with a comma. + Make sure to surround each entry with quotation marks. :: - - "{lti_id_1}:{client_key_1}:{client_secret_1}", - "{lti_id_2}:{client_key_2}:{client_secret_2}", - "{lti_id_3}:{client_key_3}:{client_secret_3}" + + "test_lti_id:b289378-f88d-2929-ctools.umich.edu:secret", + "id_21441:b289378-f88d-2929-ctools.school.edu:23746387264", + "book_lti_provider_from_new_york:b289378-f88d-2929-ctools.company.com:yt4984yr8" + #. At the bottom of the page, click **Save Changes**. - The page refreshes automatically. At the top of the page, you see a - notification that your changes have been saved. +The page refreshes automatically. At the top of the page, +you see a notification that your changes have been saved, and you can +see your entries in the **lti_passports** policy key. Step 3. Add the LTI Component to a Unit -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #. In the unit where you want to create the problem, click **Advanced** - under **Add New Component**. -#. In the list of problem types, click **LTI**. + under **Add New Component**, and then click **LTI**. #. In the component that appears, click **Edit**. -#. In the component editor, set the options that you want. See the table below - for a description of each option. +#. In the component editor, set the options that you want. See the table + below for a description of each option. #. Click **Save**. - .. list-table:: :widths: 10 80 :header-rows: 1 @@ -130,22 +143,36 @@ Step 3. Add the LTI Component to a Unit * - `Display Name` - Specifies the name of the problem. This name appears above the problem and in the course ribbon at the top of the page in the courseware. - * - `custom_parameters` [string] - - Enables you to add one or more custom parameters. Basically, - each individual external LTI provider can have a separate format custom - parameters. For example: - key=value + * - `custom_parameters` + - Enables you to add one or more custom parameters. For example, if you've added an + e-book, a custom parameter may include the page that your e-book should open to. + You could also use a custom parameter to set the background color of the LTI component. + + Every custom parameter has a key and a value. You must add the key and value in the following format. + + :: + + key=value + + For example, a custom parameter may resemble the following. + + :: + + bgcolor=red + + page=144 + To add a custom parameter, click **Add**. * - `graded` - Indicates whether the grade for the problem counts towards student's total grade. By default, this value is set to **False**. * - `has_score` - Specifies whether the problem has a numerical score. By default, this value - is set to **False**. (**SP: Is this accurate?**) + is set to **False**. * - `launch_url` - Lists the URL that Studio sends to the external LTI provider so that the provider can send back students' grades. This setting is only used if **graded** is set to - **True**. (**SP: Is this accurate? How does the user find the launch URL?**) + **True**. * - `lti_id` - Specifies the LTI ID for the external LTI provider. This value must be the same LTI ID that you entered on the **Advanced Settings** page. @@ -153,39 +180,9 @@ Step 3. Add the LTI Component to a Unit - Indicates whether the problem opens in a new page. If you set this value to **True**, the student clicks a link that opens the LTI content in a new window. If you set this value to **False**, the LTI content opens in an IFrame in the current page. - * - `weight` [float] - - If the problem will be graded by an external LTI provider, - the raw grade will be in the range [0.0, 1.0]. In order to change this range, - set the `weight`. The grade that will be stored is calculated by the formula: - stored_grade = raw_grade * weight - -.. note:: **SP: I'm not clear on what a custom parameter would be used for. Based on - the Studio UI, I'm guessing that one example would be the location of an - e-book, but I'm not sure what "vbid" would be. What else can custom parameters - be used for? Can we provide a specific example?** - - **The following is an attempt at text for this description. Can you let - me know if it's accurate?** - - Enables you to add one or more custom parameters. For - example, a custom parameter may include the location (**SP: Would it be - correct to say "URL" instead of "location"?**) of your e-book. - - Every custom parameter has a key and a value. You must add the key and - value in the following format. - - key=value - - For example, a custom parameter that specifies the location of your e-book may - resemble the following. - - **(SP: Can you provide a specific example of a custom parameter?)** - - -.. note:: **SP: Would it be correct to say the following?** - - Specifies the number of points possible for the problem. By default, if - an external LTI provider grades the problem, the problem is worth 1 point, - and a student's score can be 0 or 1. - - For more information about problem weights and computing point scores, see :ref:`Problem Weight`. \ No newline at end of file + * - `weight` + - Specifies the number of points possible for the problem. By default, if an + external LTI provider grades the problem, the problem is worth 1 point, and + a student’s score can be any value between 0 and 1. + + For more information about problem weights and computing point scores, see :ref:`Problem Weight`. \ No newline at end of file