LTI Grade Passback Expected Format?

I am trying to implement grades passback into Blackbaud.  There doesn't seem to be any documentation around this, so I am using our Canvas implementation.  The API seems to be able to return a grade (albeit in the wrong format, which I pointed out in a separate thread) but when I submit a grade it complains the request is invalid.


Here's an example:

Request

    POST https://wesleyanschool.myschoolapp.com/app/Lti/Outcome?x=vv... HTTP/1.1

    

    

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>

    <imsx_POXEnvelopeRequest xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">

      <imsx_POXHeader>

        <imsx_POXRequestHeaderInfo>

          <imsx_version>V1.0</imsx_version>

          <imsx_messageIdentifier>5ef68..9284</imsx_messageIdentifier>

        </imsx_POXRequestHeaderInfo>

      </imsx_POXHeader>

      <imsx_POXBody>

        <replaceResultRequest>

          <resultRecord>

            <sourcedGUID>

              <sourcedId>VvZVg2zD...hHcQ=</sourcedId>

            </sourcedGUID>

            <result>

              <resultScore>

                <language>en</language>

                <textString>0.5</textString>

              </resultScore>

            </result>

          </resultRecord>

        </replaceResultRequest>

      </imsx_POXBody>

    </imsx_POXEnvelopeRequest>


Response

    HTTP/1.1 200 OK

    date: Fri, 26 Jun 2020 23:42:48 GMT

    content-type: text/xml; charset=utf-8

    content-length: 806

    connection: close

    server: nginx

    vary: Accept-Encoding

    cache-control: private, s-maxage=0

    x-powered-by: BBEM Shield - kpe1

    x-ssl-protocol: TLSv1.2

    x-ssl-cipher: ECDHE-RSA-AES256-GCM-SHA384

    x-content-type-options: nosniff

    strict-transport-security: max-age=63072000; includeSubdomains; preload

    x-path: App

    

    <?xml version="1.0" encoding="utf-8"?>

    <imsx_POXEnvelopeRequest xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.imsglobal.org/services/ltiv1p1/xsd/imsoms_v1p0">

      <imsx_POXHeader>

        <imsx_POXResponseHeaderInfo>

          <imsx_version>V1.0</imsx_version>

          <imsx_messageIdentifier>99c653e8-677c-4207-bc99-dae2228ab421</imsx_messageIdentifier>

          <imsx_statusInfo>

            <imsx_codeMajor>failure</imsx_codeMajor>

            <imsx_severity>status</imsx_severity>

            <imsx_description>Invalid request</imsx_description>

            <imsx_messageRefIdentifier />

          </imsx_statusInfo>

        </imsx_POXResponseHeaderInfo>

      </imsx_POXHeader>

    <imsx_POXBody><replaceResultResponse  /></imsx_POXBody></imsx_POXEnvelopeRequest>



Based on the responses I am getting, it seems like it must be an implementation of https://www.imsglobal.org/spec/lti-bo/v1p1/ but it isn't accepting the same replaceResultRequest that we use with Canvas.


Does anyone have any idea what the API is that Blackbaud supports?

 
Tagged:

Comments

  • I have put both your posts here about errors and issues with the API into the request for dev to look into.

Categories