xAPI

xAPI with LTI tools

Canvas has implemented a small piece of xAPI (Tin Can API). Go here to learn more about xAPI.

An external tool can ask for an xAPI callback URL, and then POST back an interaction activity to Canvas. This will update the activity time for the user in Canvas, and add a page view for that tool. Page views will show up in the course analytics section as activity.

Instructions

  • The external tool should use the substitution parameter of $Canvas.xapi.url in its LTI launch parameters.

  • The tool can then save the url value that is given when launched.

  • The tool POSTs to that url and signs the request with the LTI OAuth parameters.

  • The content-type should be application/json, with an xAPI body.

  • The object.id will be logged as the page view URL.

  • result.duration must be an ISO 8601 duration if supplied.

    • Canvas page views cap at 5 minutes for now. So any value greater than that is just logged as 5 minutes.

Here is an example of the minimum JSON that would log 3 minutes of activity for http://example.com:

{
  "id": "12345678-1234-5678-1234-567812345678",
  "actor": {
    "account": {
      "homePage": "http://www.instructure.com/",
      "name": "unique_name_for_user_of_some_kind_maybe_lti_user_id"
    }
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/interacted",
    "display": {
      "en-US": "interacted"
    }
  },
  "object": {
    "id": "http://example.com/"
  },
  "result": {
    "duration": "PT3M0S"
  }
}

© Instructure, Inc. Generated on Wed Nov 6 14:19:59 2024 This documentation is generated directly from the Canvas LMS source code, available on Github.

Last updated

Copyright © 2024 Instructure, Inc. All rights reserved.