2.1.3 Syncing content from the Go1 Catalogue to your application

Why would you need to sync content?

Your customers will typically have access to a varying number of courses based on their Go1 subscription. It is more than likely that your customers will have access to more content than they need up front. Customers also can feel overwhelmed when faced with 80k+ courses available to them.

Instead of trying to manage 80k+ courses, customers can curate content they want from the Go1 Content Hub (which contains all courses available to them) and add it to their My Library (which is a curated list of courses the customer has 'subscribed' to).

As a partner, you will be referencing these courses in the My Library section to identify which courses to sync to your application.

As such, the last step in the process is to grab the courses that your customer has added to their My Library, and then create those as courses or learning content in your LMS.

null

How do I sync content?

The first thing you need to work through is the interaction that will trigger the sync process. You have a few options here:

  1. Run the process when a user-driven event occurs,
  2. Look for changes between the synced library in the LMS, and the library in the Go1 Portal,
  3. Run a scheduled sync that does the above

For ease of implementation, it's best to run the process when a user-driven event occurs (like clicking a 'sync' button).
Once you have that defined, you'll need to get all of the learning objects in the My Library collection.

In the steps below, we'll walk through the process of retrieving Go1 Learning Objects as SCORM objects. If you prefer not to use SCORM, you can instead use Authenticated Play Links to provide your users access to Go1 content within your application. To learn more about this method, see our Play content via authenticated play link documentation.

Step 1. Get Learning objects from Go1

You need to first get all of the learning objects by querying the Go1 API for all of the learning objects in the My Library collection.

GET https://api.go1.com/v2/learning-objects?offset=0&limit=50&collection=default

This will then return a list of courses in the user's My Library, which you will then need to fetch the SCORM package for each course to be synced.

When syncing content across, it is recommended to keep a record of the Go1 learning object`lo_id`'s synced across after each subsequent sync, so that you can delta the differences and then fetch only the courses that are new.

Step 2. Fetch SCORM for Learning Objects

Each of these SCORM packages is a reference to the actual SCORM files - which will be stored on the Go1 API. This means that you only need to sync the reference to the SCORM; when a user loads up a course in your LMS, the SCORM standard will reach out to Go1 to obtain the course materials (videos, documents, etc.) and play the content.

To fetch the SCORM package, simply specify the learning object `lo_id` in the path parameter in the following query:

GET https://api.go1.com/v2/learning-objects/{lo-id}/scorm