cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
dalvarado-nonem
Community Participant

Why isn't Canvas passing us the "lis_outcome_service_url" parameter?

Hi,

We (a content provider) have created common cartridges with LTI links back to our system.  However, after a teacher imports that common cartridge into his/her course and assigns one of our assessment links (part of the common cartridge) in Canvas, we are not passed a "lis_outcome_service_url" parameter by Canvas, which as I understand from reading the IMS spec is necessary for grade passback from our system back into Canvas.  Currently we receive the LTI parameters I've included below.  How are we supposed to execute grade passback if Canvas doesn't pass us the necessary information? - 

oauth_consumer_key=ZMWOJH77FW

oauth_signature_method=HMAC-SHA1

oauth_timestamp=1520526534

oauth_nonce=iGLlfWQ1yelv06DYuxeCbPwogO19pTVKMpKCBddtk4

oauth_version=1.0

context_id=065e970d3e5cf11414f766c9b202f56dc0340e59

context_label=DEFABC

context_title=ELA+Grade+6+2018

custom_assessment_id=782308D373E84DDE8D0953F23AB207FC

custom_canvas_api_domain=canvas.instructure.com

custom_canvas_course_id=1290816

custom_canvas_enrollment_state=active

custom_canvas_user_id=13666019

custom_canvas_user_login_id=dave.student@subco.com

custom_canvas_workflow_state=available

ext_roles=urn:lti:instrole:ims/lis/Student,urn:lti:role:ims/lis/Learner,urn:lti:sysrole:ims/lis/User

launch_presentation_document_target=iframe

launch_presentation_locale=en

launch_presentation_return_url=https://canvas.instructure.com/courses/1290816/external_content/success/external_tool_redirect

lis_person_contact_email_primary=dave.student@subco.com

lis_person_name_family=Student

lis_person_name_full=Dave+Student

lis_person_name_given=Dave

lti_message_type=basic-lti-launch-request

lti_version=LTI-1p0

oauth_callback=about:blank

resource_link_id=244fe8c497726da358614f4bfe666fce075a4582

resource_link_title=ELA+Grade+6+Unit+1+-+Digital

roles=Learner

tool_consumer_info_product_family_code=canvas

tool_consumer_info_version=cloud

tool_consumer_instance_contact_email=notifications@instructure.com

tool_consumer_instance_guid=07adb3e60637ff02d9ea11c7c74f1ca921699bd7.canvas.instructure.com

tool_consumer_instance_name=Free+For+Teachers

user_id=300421322f77ecf6b946ab2f9e54bd8ccfda05c6

user_image=https://secure.gravatar.com/avatar/b6aae6522545ed7303ede98a16936a2d?s=50&d=https%3A%2F%2Fcanvas.inst...

oauth_signature=LABHuLLhkPVsCij3l64T5D72JH4=

8 Replies
ericwerth
Community Coach
Community Coach

Hello  @dalvarado-nonem .  I am not familiar with this enough to be able to answer your question, but I am going to share this with the https://community.canvaslms.com/groups/canvas-developers?sr=search&searchId=90e4ab97-38ae-4aed-ab04-...‌ group in hopes someone will be able to provide insight into what you are experiencing.

All the best--

James
Community Champion

 @dalvarado-nonem ,

Are you sure that this LTI is tied to an assignment in Canvas that is graded?

When I call my test LTI from an assignment, I get some parameters that you don't have.

  • custom_canvas_assignment_id
  • custom_canvas_assignment_points_possible
  • custom_canvas_assignment_title
  • ext_lti_assignment_id
  • ext_outcome_data_values_accepted
  • ext_outcome_result_total_score_accepted
  • ext_outcomes_tool_placement_url
  • lis_outcome_service_url

There are some others I have that are probably related to the visibility settings -- information about the user. But I don't see any of the assignment information in yours. If there's not an assignment tied to the external tool, then it can't pass a grade back to it.

If I use the same LTI call, but add it as a Module Item of type External Tool, then I do not get any of those assignment-related items -- similar to what you're seeing.

In short -- start by checking that this is called from an assignment and not from a module item or other invocation like a navigation link.

dalvarado-nonem
Community Participant

You seem to be making a distinction between modules and assignments, but I'm in the modules section and I create a new assignment -- Imgur: The magic of the Internet , and there's no option when creating that assignment to designate the item as Graded or not.  How do I enable this setting (assuming that's what's needed for the params to appear)?

 @dalvarado-nonem ,

Are you absolutely sure that you're creating an "assignment" in Canvas?

When you click on the + on the modules page, you are not necessarily creating an assignment.

270801_pastedImage_1.png

When you do that, you are adding an "Item" to the module. This is called a "Module Item". It defaults to assignment, but it can be assignment, quiz, file, content page, discussion, text header, external URL, or external tool.

270802_pastedImage_2.png

If you choose External Tool, you are not creating an assignment. You are creating a navigation link to an external tool, but there is no assignment for grade passback to happen. The dialog that pops up gives you a list of external tools to choose from.

There are several ways to create an assignment.

  • From the Assignments page. This is my preferred method as it gives me complete control over the assignment settings. The other places create a shell and you have to then edit the assignment to fill in any details, so you might as well start here.
  • From the Modules page. Click the +, then choose Assignment, and [New Assignment]. After you fill in the details, you'll need to click the assignment itself to get to the screen where you can Edit it.
  • From the Calendar. Click on a date, then switch to Assignment instead of Event. Click "More Options" to get to the edit mode.
  • Creating quizzes or discussions from their pages also create assignments, but we're talking about external tools, so one of the three ways above is best.

Here's a screenshot of my Modules page after I added two items that take me to the same external tools

270828_pastedImage_7.png

The first one is an External Tool. To edit the tool, click the 3 vertical dots on the side and you can change the URL. This one is not tied to an assignment and does not allow grade passback.

The second one is an assignment, whose submission type is an external tool. Since this is an external tool associated with an assignment, then grade passback is supported. To edit the assignment, click on the name "Dave Test 2". Clicking on the three vertical dots will allow you to change the name and indentation, but nothing else. You've got to click on the name to get to the assignment.

Once you get to the assignment page where you can edit it, you'll need to click the Edit button at the top to edit the assignment.

270829_pastedImage_8.png

You could avoid all of the above by creating the assignment first from the assignments page and you will automatically be thrown into the edit assignment mode. Once you've created the assignment, you add an existing assignment to the modules page. That's the way I do it, but Canvas allows for different workflows.

Once you are editing an assignment, you'll see a whole bunch of options like this:

270830_pastedImage_9.png

The Submission Type is where you tell it that you have an external tool.

270825_pastedImage_4.png

Once you do that, you can paste the URL or click the Find button.

270826_pastedImage_5.png

If you make the assignment non-graded by changing the Display Grade As, then the Submission Type box is hidden from you and you can't change it to an external URL.

270827_pastedImage_6.png

However, since you're trying to figure out grade passback, I'm going to risk assuming that you don't want non-graded.

Thanks for this explanation.  I was indeed adding somethign to the module, whcih wasn't what I intended.  So my question is, how do I assign one of the modules to the class?  The modules are themselves external links that I have imported via a CC but for the life of me I can't figure out how to assign one of those things.

Robbie_Grant
Community Coach
Community Coach

 @dalvarado-nonem ,

Were you able to find an answer to your question? I am going to go ahead and mark this question as answered because there hasn't been any more activity in a while so I assume that you have the information that you need. If you still have a question about this or if you have information that you would like to share with the community, by all means, please do come back and leave a comment.  Also, if this question has been answered by one of the previous replies, please feel free to mark that answer as correct.

 

Robbie

anshubeniwal
Community Member

The first above query is not fixed yet. "Why isn't Canvas passing us the "lis_outcome_service_url" parameter?"

I just want to post grade passback with common Cartridge LTI links which are comes under modules. So, is there any way to move/copy module contents into assignments so that passback might be possible.

If you have any solutions regarding this or any alternative way to post grade passback with CC links. Please, let me know.

Thankyou in Advance!

For future searchers of this question:

You cannot use a module for grade passback. You have to create an assignment with the exact URL of the specific module you want to use.

Instructions:


How to make an assignment viewable AND with a gradepassback URL:

Import Cartridge
Go to the Modules Page
Click the 3 dot thingy at the right of whichever Module you want to use in your assignment.
Click “Edit”
Copy the URL into your clipboard.
Cancel.
Click on “Assignments”
Click the +Assignments
Add an Assignment Name and choose a Grade amount
Under “Submission Type”, choose “External Tool” if it is not already chosen.
Paste the URL from step 5 into the textbox under “Enter of find….”
For now, make sure to click “Load This Tool In A New Tab”
Do whatever else to the assignment that you need to.
Click “Save & Publish”

Congratulations! You should now have an assignment a student can take and will feature grade passback.

Here is a very useful video with the entire process; please note I am not the creator. The grade passback section is after the 7 minute mark.

https://vimeo.com/350234854