lti-launch icon indicating copy to clipboard operation
lti-launch copied to clipboard

Missing field 'ext_lti_assignment_id'

Open Error-250 opened this issue 6 years ago • 0 comments

Description: I want to create a LTI for my canvas to do someting for special Homework Submission.Then i create a config xml for my LTI first, like this: <?xml version="1.0" encoding="UTF-8"?> <cartridge_basiclti_link xmlns="http://www.imsglobal.org/xsd/imslticc_v1p0" xmlns:blti = "http://www.imsglobal.org/xsd/imsbasiclti_v1p0" xmlns:lticm ="http://www.imsglobal.org/xsd/imslticm_v1p0" xmlns:lticp ="http://www.imsglobal.org/xsd/imslticp_v1p0" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.imsglobal.org/xsd/imslticc_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticc_v1p0.xsd http://www.imsglobal.org/xsd/imsbasiclti_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imsbasiclti_v1p0.xsd http://www.imsglobal.org/xsd/imslticm_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticm_v1p0.xsd http://www.imsglobal.org/xsd/imslticp_v1p0 http://www.imsglobal.org/xsd/lti/ltiv1p0/imslticp_v1p0.xsd"> <blti:launch_url>http://127.0.0.1:8080/canvas_lti/OJ/launch</blti:launch_url> <blti:title>oj</blti:title> <blti:description>oj</blti:description> <blti:extensions platform="canvas.instructure.com"> <lticm:property name="privacy_level">public</lticm:property> <lticm:options name="homework_submission"> <lticm:options name="labels"> <lticm:property name="en">oj</lticm:property> <lticm:property name="zh">编程</lticm:property> </lticm:options> <lticm:property name="selection_width">500</lticm:property> <lticm:property name="selection_height">300</lticm:property> <lticm:property name="enabled">true</lticm:property> </lticm:options> </blti:extensions> </cartridge_basiclti_link> And i paste this config xml on canvas UI.After that, i find this tool will pass two fields to me: ext_lti_assignment_id(String) and custom_canvas_assignment_id(Number).In your lib, i find all the canvas post data will be store at a structure named 'LtiLaunchData' which do not have the two fields.So i think your lib may be not meet my needs.However, i have an idea when i see the log.When it authenticate successfully, it will redirect to my controller by Spring ranther than Browser.So i think may be i could get the field by HttpServletRequest object and it do.So i use a middle controller to save all my need fields which do not exists in 'LtiLaunchData' to session. May be i do not read the document carefully to find a better way to do it.So i humbly ask you what is th right way to get the two fields, Thanks a lot.

Error-250 avatar May 02 '18 04:05 Error-250