Skip to content
This repository has been archived by the owner on Apr 1, 2024. It is now read-only.

byu-oit/canvas-sdk

Repository files navigation

BYU logo @byu-oit/canvas-sdk

This module provides a partial wrapper around Instructure's Canvas API primarily focused on the API's needed to sync account, term, course, section, and user data. It is capable of managing multiple tokens at once, using all of them based on the x-rate-limit-remaining header.

Example Usage

For a more complete example, see test.js

If you are using a single token:

const canvas = require('./index')({
    token: <your canvas access token>,
    subdomain: <your canvas subdomain> // for example, if your canvas url is `byu.instructure.com` then the subdomain is `byu`.
});

main();

async function main() {
	const user = await canvas.users.add('Joe Smith', 'Smith, Joe', 'joe@example.com', 'joe-id', 'joetheman');
	...
}

If you are using multiple tokens, it is the same as above but the canvas module should be instanced as below:

const canvas = require('./index')({
    tokens: [
        <your first canvas access token,
        <your second canvas access token,
        ...
    ],
    subdomain: process.env.SUBDOMAIN
});

Running test.js

To run the tests for this module, you will need to define the TOKEN and SUBDOMAIN environment variables. We recommend only running the tests with a .test subdomain as the tests will add and delete data from your account. It will not modify or delete any existing data.

$ TOKEN=your-canvas-access-token SUBDOMAIN=byu.test node test.js

If you would like to see full log output, also define LOG_LEVEL=debug.