I am using the LTI Provider in Moodle2.9 to integrate with Canvas LMS. Successfull authentication is happening and users are able to take quiz activity in Moodle.
But grades are not passing back to Canvas, I am getting "Error while processing content unencoding: invalid block" when cron is executed.
Please help me out in finding the cause of the issue.
Are you in a position where you can upgrade? I believe moodle 3.1's provider is working with canvas.
There are reports of it not working again in 3.2 onwards.
If you are able to help out at all with more information, especially for the moodle core provider that's appreciated.
The issue is here https://tracker.moodle.org/browse/MDL-57703
Thank you for the reply. What information do you need regarding the issue that I am facing ?
I'm more interested in problems with more recent versions of moodle as we are no longer supporting the plugin.
If you can't upgrade, I can suggest that you try using your moodle tool in http://lti.tools/test/tc.php and see if it works.
Then try using http://lti.tools/test/tp.php in canvas and see if that works.
Then you'll know for sure whether it's the moodle plugin or canvas at fault. Unless of course both work, in which case both are at fault I suppose.
Thank You. I don't find the LTI 2 option in our Canvas instance.
We just have the "Manual Entry", "URL", "Paste LMS" and where should I submit the grades to the assessment and see if it passed back to Canvas.
Another thing that we observed is that the values "lis_result_sourcedid" and "lis_outcome_service_url" are not passing to the Moodle. Will it be any cause for grades not passing back ?
Try URL or manual entry.
You may have found the cause with those missing values. Perhaps the LTI instance is not quite configured the best in canvas or they don't support grades. We can find out as we test with the test tool
I am able to fix it. Issue was with the timezone and time. Time difference between the Canvas and Moodle server should not be more than 5min.
If you want to increase, please change below lines,
protected $timestamp_threshold = 300; // in seconds, five minutes -- line number--->447 in local/ltiprovider/lms-blti/OAuth.php.