Hi everybody
I'm a newbie on LTI and Moodle in general. We are trying to write an external tool interface to our existing application. Ideally our app will be called by Moodle with the Lesson we want the student to take and the student will see it and at the end, upon completion the grade will be sent back to Moodle. Please bear with me, your wisdom and knowledge will be greatly appreciated.
We are using Moodle 2.8, LTI 2.0 built in. We enabled Web services across the site, JSON, XML-RPC.
We have been doing this off of the LTI documentation but we can't find ANY example using LTI 2.0 so this is the flow we put together so far:
We go to the administration > Plugins > Activity Modules > LTI > Manage External Tool registrations
and register our plugin, or try to.
- External tool registration
- Enter a name, URL, Capabilities and services
- then we try to register it.
Moddle sends this:
launch_presentation_retur... | https://moodle.oursite.com/mod/lti/registrationreturn.php?id=13&sesskey=OdACc0zCJy |
lti_message_type | ToolProxyRegistrationRequest |
lti_version | LTI-2p0 |
reg_key | jVKFt0vjGfbynE3 |
reg_password | kln9fCRMcL19Y58 |
tc_profile_url | https://moodle.oursite.com/mod/lti/services.php/profile/jVKFt0vjGfbynE3?lti_version=LTI-2p0 |
Then the code in the provider side calls the tc_profile_url and gets back a json with tons of information, including:
Context, product_instance, capability_offered, service_offered.
Our code looks for the ToolProxy.collection service and when it finds it, starts building our JSON representation for the proxy.
Under the security_contract the only accepted tool service is "ToolProxy.collection."
Whenever we try adding "ToolProxy.item" or "Result.item" to the tool_service or end_user_service, we end up with a bad request 400. If we omit those items, we get a 201 response as expected. But those
The question is: What are we doing wrong? What are we missing?
Attached are the JSONs for the Tool Consumer Profile and Proxy Representation