⚠️

Exciting News!

Our transition to a new website is complete. Click here to seamlessly access the latest version of this article.

Kindly update any bookmarked URLs accordingly. The Development Center will no longer be accessible after April 1, 2024. Thank you for your attention to this matter.

📘

GitHub

Click here to go to GitHub

Setup

Insert OneRoster.php into your project.
NOTE: OneRoster.php uses cURL, which may require setup on Windows.

Usage

First, import OneRoster.

include('OneRoster.php');

Next, create a new instance of the OneRoster object, which takes in two strings,
the client_id and client_secret.

$oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX')

You are now able to make requests to a specified URL. This is done using the method makeRosterRequest($url), which takes in the URL and returns an array.

$oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX')
$response = $oneRoster->makeRosterRequest("https://example.com/users");

The response is made up of "status_code", which contains the status code, and "response", which contains the JSON response as a string.

echo $response["status_code"]; // The status code
echo $response["response"]; // The JSON response

Example

📘

Example

Print all students' names

<?php
// Include OneRoster
include('OneRoster.php');

function getUsers($url) {

    // Create new OneRoster object with the client_id and client_secret
    $oneRoster = new OneRoster('XXXXXXXXXXXXXXXXXXXXXXXX', 'XXXXXXXXXXXXXXXXXXXXXXXX');

    // Make the request to the given url and store the array with status_code and response
    $response = $oneRoster->makeRosterRequest($url);

    // Decode the response
    $decoded = json_decode($response["response"], true);

    // If status_code is 200, create array of users from response, otherwise print message and return null
    switch ($response["status_code"]) {
        case 200:
            return $decoded["users"];
        case 401:
            echo "Unauthorized Request\n" . $response["response"];
            break;
        case 404:
            echo "Not Found\n" . $response["response"];
            break;
        case 500:
            echo "Server Error\n" . $response["response"];
            break;
        default:
            echo "Something Went Wrong, status code " . $response["status_code"] . $response["response"];
            break;
    }
    return null;
}

$users = getUsers("https://example.com/users?fields=givenName%2CfamilyName&filter=role%3D'student'");

// Print users if not null
if ($users != null) {
    foreach ($users as $user) {
        echo $user["givenName"] . " " . $user["familyName"] . "\n";
    }
}