Izumi-kun / LTI-Tool-Provider-Library-PHP

LTI Tool Provider library for PHP
Apache License 2.0
21 stars 6 forks source link

Blackboard LTI2: Can not deserialize instance of out of START_OBJECT token #13

Open dac514 opened 6 years ago

dac514 commented 6 years ago

Tested using:

https://community.blackboard.com/docs/DOC-4242-using-the-developer-ami

When doing a LTI2 registration with Blackboard, the LMS errors with:

{"status":400,"message":"Could not read document: Can not deserialize instance of  out of START_OBJECT token\
 at [Source: @3fe45ab9; line: 1, column: 1263] (through reference chain: [\\"tool_profile\\"]->[\\"resource_handler\\"]->[0]->[\\"icon_info\\"]); nested exception is : Can not deserialize instance of  out of START_OBJECT token\
 at [Source: @3fe45ab9; line: 1, column: 1263] (through reference chain: [\\"tool_profile\\"]->[\\"resource_handler\\"]->[0]->[\\"icon_info\\"])","extraInfo":"b711870c01384a0cb406dbda5c4ef919"}

If I If comment out the icon_info node then the LTI2 registration works fine.

//        $this->icon_info = new \stdClass;
//        $this->icon_info->default_location = new \stdClass;
//        $this->icon_info->default_location->path = $resourceHandler->icon;
//        $this->icon_info->key = "{$resourceHandler->item->id}.icon.path";

https://github.com/Izumi-kun/LTI-Tool-Provider-Library-PHP/blob/master/src/ToolProvider/MediaType/ResourceHandler.php#L36

IMHO the icon is fine and follows the standard this is a bug in Blackboard.

https://www.imsglobal.org/lti/model/uml/purl.imsglobal.org/vocab/lti/v2/lti/index.html#IconInfo

I emailed developers<at>blackboard.com with this info and am waiting for a reply. If they do nothing then it would be nice to have the option of not building icon_info somehow....

dac514 commented 6 years ago

Sent an email to devs and got (abridged):

"Blackboard is no longer supporting/developing LTI 2. [...] Icons and thumbnail support isn’t required. We have passed all the certification suites from IMS. [...] We’re considering this as a future enhancement, but it wouldn’t be in 2018. Focused on certification of LTI Advantage and this isn’t a requirement in spec."