Google Classroom PHP Quickstart API

TIJ Tech Private Limited
5 min readMar 9, 2021

--

For more details and information, please refer to the YouTube video.

Video URL: https://youtu.be/OG5t20a2ZUo

PHP Quickstart

In this tutorial, I will be teaching the complete steps described in the rest of this page to create a simple PHP command-line application that makes requests to the Classroom API.

Pre-requisites

To run this quickstart, you need the following pre-requisites:

· PHP 5.4 or greater with the command-line interface (CLI) and JSON extension installed.· The Composer dependency management tool.· A G Suite for Education account with Google Classroom enabled.

Step 1: Turn on the Classroom API

Click on the “Enable the classroom API” button to create a new Cloud Platform project and automatically enable the Classroom API: Enable the Classroom API.

In resulting dialog click DOWNLOAD CLIENT CONFIGURATION and save the file credentials.json to your working directory.

Step 2: Install the Google Client Library

Then, go to your working directory and open the cmd prompt, then copy and paste the code shown below.

composer require google/apiclient:^2.0

See the library’s installation page for the alternative installation options.

Step 3: Set up the sample

In your working directory, create a file named quickstart.php in your working directory and copy in the following code:

<?php
require __DIR__ . '/vendor/autoload.php';

if (php_sapi_name() != 'cli') {
throw new Exception('This application must be run on the command line.');
}

/**
* Returns an authorized API client.
* @return Google_Client the authorized client object
*/

function getClient()
{
$client = new Google_Client();
$client->setApplicationName('Google Classroom API PHP Quickstart');
$client->setScopes(Google_Service_Classroom::CLASSROOM_COURSES_READONLY);
$client->setAuthConfig(__DIR__ .'/credentials.json');
$client->setAccessType('offline');
$client->setPrompt('select_account consent');

// Load previously authorized token from a file, if it exists.
// The file token.json stores the user's access and refresh
tokens, and is
// created automatically when the authorization flow completes for the first
// time.
$tokenPath = 'token.json';
if (file_exists($tokenPath)) {
$accessToken = json_decode(file_get_contents($tokenPath), true);
$client->setAccessToken($accessToken);
}

// If there is no previous token or it's expired.
if ($client->isAccessTokenExpired()) {
// Refresh the token if possible, else fetch a new one.
if ($client->getRefreshToken()) {
$client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
} else {
// Request authorization from the user.
$authUrl = $client->createAuthUrl();
printf("Open the following link in your browser:\n%s\n", $authUrl);
print 'Enter verification code: ';
$authCode = trim(fgets(STDIN));

// Exchange authorization code for an access token.
$accessToken = $client->fetchAccessTokenWithAuthCode($authCode);
$client->setAccessToken($accessToken);

// Check to see if there was an error.
if (array_key_exists('error', $accessToken)) {
throw new Exception(join(', ', $accessToken));
}
}
// Save the token to a file.
if (!file_exists(dirname($tokenPath))) {
mkdir(dirname($tokenPath), 0700, true);
}
file_put_contents($tokenPath, json_encode($client->getAccessToken()));
}
return $client;
}

// Get the API client and construct the service object.
$client = getClient();
$service = new Google_Service_Classroom($client);

// Print the first 10 courses the user has access to.
$optParams = array(
'pageSize' => 10
);
$results = $service->courses->listCourses($optParams);

if (count($results->getCourses()) == 0) {
print "No courses found.\n";
} else {
print "Courses:<br/>\n";
foreach ($results->getCourses() as $course) {
printf("%s (%s)<br/>\n", $course->getName(), $course->getId());
}
}

Step 4: Run the sample

Run the sample using the following command:

php quickstart.php

The first time you run the sample, it will prompt you to authorize access:

a. Browse to the provided URL in your web browser.

If you are not already logged into your Google account, you will be prompted to log in. If you are logged into multiple Google accounts, you will be asked to select one account to use for the authorization.

b. Click the Accept button.

c. Copy the code you’re given, paste it into the command-line prompt, and press Enter.

We will be viewing our Courses of Google Classroom using Xampp, and aligning the courses by adding “<br/>” code in the quickstart.php file.

It Worked!

Notes

· Authorization information is stored on the file system, so subsequent executions will not prompt for authorization.

· The authorization flow in this example is designed for a command-line application. For information on how to perform authorization in a web application, see Using OAuth 2.0 for Web Server Applications.

Further reading

· Google Developers Console help documentation

· Google APIs Client for PHP documentation

· Classroom API PHP reference documentation

· Classroom API reference documentation

--

--

No responses yet