<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
// TODO: Replace URL, Client ID, and Client Secret with your values
$edfiBaseUrl = "https://api.ed-fi.org/v5.4/api"; // NOTE: No trailing slash!
$edfiClientId = "RvcohKz9zHI4";
$edfiClientSecret = "E1iEFusaNf81xzCxwHfbolkC";
function edfiApiGet($token, $edfiResourceUrl, $data){
$authorization = "Authorization: Bearer $token";
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
curl_setopt($curl, CURLOPT_URL, "$edfiResourceUrl?$data");
// Receive server response
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
$jsonResult = json_decode($result);
curl_close($curl);
return $jsonResult;
}
function getAuthToken($edfiBaseUrl, $edfiClientId, $edfiClientSecret){
$edfiApiTokenUrl = "$edfiBaseUrl/oauth/token";
$paramsToPost = "Client_id=$edfiClientId&Client_secret=$edfiClientSecret&Grant_type=client_credentials";
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_URL, "$edfiApiTokenUrl");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $paramsToPost);
// Receive server response
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($curl);
$jsonResult = json_decode($result);
curl_close($curl);
$response = new stdClass();
$response -> success = true;
if(property_exists($jsonResult, 'error')){
$response->success = false;
$response->errorMessage = "Invalid Credentials";
}
else
$response->token = $jsonResult->access_token;
return $response;
}
?>
<?php
$getTokenResult = getAuthToken($edfiBaseUrl, $edfiClientId, $edfiClientSecret);
if(!($getTokenResult->success)){
echo "<p>Error Message: $getTokenResult->errorMessage</p>";
}
else {
$accessToken = $getTokenResult->token;
echo "<p>Access Token: $accessToken </p>";
$jsonStudents = edfiApiGet($accessToken,"https://api.ed-fi.org/v5.4/api/data/v3/ed-fi/students","limit=10");
echo "List of Students: \n\n";
}
?>
<table>
<thead>
<tr>
<th>FirstName</th>
<th>Middle</th>
<th>Last</th>
</tr>
</thead>
<tbody>
<?php
if($getTokenResult->success){
foreach ($jsonStudents as $student => $s) {
// Output a row
$row = "<tr>";
$row .= "<td>$s->firstName</td>";
if(property_exists($s, 'middleName'))
$row .= "<td>$s->middleName</td>";
$row .= "<td>$s->lastSurname</td>";
$row .= "</tr>";
echo $row;
}
}
?>
</tbody>
</table>
<hr>