Skip to main content

Python wrapper for Schoology’s API.

https://badge.fury.io/py/schoolopy.svg

Installation

You may easily install schoolopy from PyPI with pip3 install schoolopy.

Setup & Authorization

Before any use of schoolopy, you’ll need to import it.

import schoolopy

You’ll then need to instantiate the Auth class and, using that object, instantiate the API wrapper. There are two ways of authenticating with Schoology: two-legged and three-legged. The former is far simpler and useful for apps used by only one user who is capable of managing their own API keys, but if you’re building a web app to interact with Schoology you’ll need to use three-legged.

Obtain your consumer API key and secret from [Schoology URL]/api.

# Two-legged
sc = schoolopy.Schoology(schoolopy.Auth(key, secret))
sc.get_feed()  # etc.
# Three-legged
auth = schoolopy.Auth(key, secret, three_legged=True, domain='https://schoology.com')  # Replace URL with that of your school's Schoology
url = auth.request_authorization()
# Redirect user to that URL as appropriate for your application. Once user has performed action, continue.
if not auth.authorize():
    raise SystemExit('User not authorized!')
sc = schoolopy.Schoology(auth)

Example

More in-depth examples of both two- and three-legged authentication in action can be found in example-twolegged.py and example-threelegged.py. You will need to write your key and secret into example_config.yml.example and rename that file to example_config.yml.

Methods

This library contains a large number of functions for interaction with the API, and listing them all would be impractical.

For a comprehensive list of what endpoints are available, consult the REST API v1 documentation.

Most objects’ functions follow a similar pattern to the following example.

[realm] represents the name of any realm type; in this case you can use district, school, user, section, or group. Valid realms may vary for different objects.

event represents an Event object.

  • sc.get_events([realm]_id=)

  • sc.get_[realm]_events([realm]_id)

  • sc.create_event(event, [realm]_id=)

  • sc.create_[realm]_event(event, [realm]_id)

  • sc.get_event(event_id, [realm]_id=)

  • sc.get_[realm]_events([realm]_id)

  • sc.update_event(event, event_id, [realm]_id=)

  • sc.update_[realm]_event(event, event_id, [realm]_id)

  • sc.delete_event(event_id, [realm]_id=)

  • sc.delete_[realm]_event(event_id, [realm]_id)

Note: Some methods, such as `get_courses`, are currently broken because Schoology’s API has stopped providing data on the relevant endpoints.

Author

This library was created by Erik Boesen.

Licensing

This software is available under the MIT License.

Release files for schoolopy 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for schoolopy 0.3.1
File Size Uploaded
schoolopy-0.3.1.tar.gz 17.0 kB Details

Release files / schoolopy-0.3.1.tar.gz

Download URL schoolopy-0.3.1.tar.gz
Size 17.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3eb753588ce65e637a64956f398a329ad9e3d54822ab29845100aed63e6472d1
BLAKE2b-256 checksum
How to use checksums
914153a9385b0bd439ac41dcad6d8811b327ace195ce263dc8e2d564732e816f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.1 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.16

Release history Release notifications | RSS feed

This release

0.3.1 This release

1 release file

0.3.0

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page