imaginie / api-client
Imaginie PHP API Client
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2025-06-13 02:15:56 UTC
README
A PHP Client implementation of Imaginie API v3 methods
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
Prerequisites
- PHP >= 7.1
- Composer - Dependency Manager for PHP
Installing
Make sure you have the prerequisites above and then you can install our library using composer. Navigate to your project folder and type:
$ composer require imaginie/api-client
Usage
Composer generates a autoload.php file in vendor folder. Include this file and then you can use our library.
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $Imaginie->login(); // this is not required - it returns the JWT token $students = $Imaginie->getStudents(); var_dump($students);
Getting Response - Body and Headers
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $Imaginie->login(); // this is not required - it returns the JWT token // Methods return response's body $students = $Imaginie->getStudents(); var_dump($students); // You can get response headers and body separately $response_body = $Imaginie->getResponseBody(); $response_headers = $Imaginie->getResponseHeaders(); var_dump($response_body); var_dump($response_headers); // OR $response = $Imaginie->getResponse(); // returns an array with 'headers' and 'body' var_dump($response);
Implemented methods
login() - returns the JWT token
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $Imaginie->login(); // You can get the token by this whay as well $Imaginie->getToken(); // Or if you have a token, you can set it $Imaginie->setToken('YourTokenHere');
getStudents() - returns a list with your school students
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $students = $Imaginie->getStudents(); var_dump($students);
response:
[ { "code": "123456", "email": "teste@teste.com.br", "name": "João do Teste", "class_code": [ "XPTOEM3A" ] }, { "code": "123456", "email": "teste@teste.com.br", "name": "João do Teste", "class_code": [ "XPTOEM3A" ] } ]
getStudent($id) - returns a specific student
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $student = $Imaginie->getStudent(1234567890); var_dump($student);
response:
{ "code": "123456", "email": "teste@teste.com.br", "name": "João do Teste", "class_code": [ "XPTOEM3A" ] }
createStudent($name, $email, $code, $class_code=null) - returns an object with the created student
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $student = $Imaginie->createStudent('Michael Jackson', 'student@email.com', 'STD001', 'ABC123'); var_dump($student);
response:
{ "code": "STD001", "email": "student@email.com", "name": "Michael Jackson", "class_code": [ "ABC123" ] }
updateStudent($id, $name, $email, $code=null, $class_code=null) - returns an object with the updated student
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $student = $Imaginie->updateStudent(19642009, 'Michael Joseph Jackson', 'michael@jackson.com'); var_dump($student);
response:
{ "code": "STD001", "email": "student@email.com", "name": "Michael Jackson", "class_code": [ "ABC123" ] }
deleteStudent($id)
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); try { $Imaginie->deleteStudent(1234567890); } catch (Exception $ex) { die($ex->getMessage()); }
getClasses() - returns a list with your school Classes
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $classes = $Imaginie->getClasses(); var_dump($classes);
response:
[ { "id": 123, "name": "Ensino Médio", "description": "Ensino Médio", "code": "EM1", "parent": "ESC123", "school": "Teste", "school_id": 123, "total_students": 0 }, { "id": 123, "name": "Ensino Médio", "description": "Ensino Médio", "code": "EM1", "parent": "ESC123", "school": "Teste", "school_id": 123, "total_students": 0 } ]
getClass($id) - returns a specific Class
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $class = $Imaginie->getClass(1234567890); var_dump($class);
response:
{ "id": 123, "name": "Ensino Médio", "description": "Ensino Médio", "code": "EM1", "parent": "ESC123", "school": "Teste", "school_id": 123, "total_students": 0 }
createClass($name, $description, $code, $parent_code=null) - returns an object with the created Class
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $class = $Imaginie->createClass('Ensino Médio', 'Ensino Médio', 'EM1', 'ESC123'); var_dump($class);
response:
{ "id": 123, "name": "Ensino Médio", "description": "Ensino Médio", "code": "EM1", "parent": "ESC123", "school": "Teste", "school_id": 123, "total_students": 0 }
updateClass($id, $name, $email, $code=null, $class_code=null) - returns an object with the updated Class
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $class = $Imaginie->updateClass(19642009, 'Ensino Médio', 'Ensino Médio', 'EM1', 'ESC123'); var_dump($class);
response:
{ "id": 123, "name": "Ensino Médio", "description": "Ensino Médio", "code": "EM1", "parent": "ESC123", "school": "Teste", "school_id": 123, "total_students": 0 }
deleteClass($id)
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); try { $Imaginie->deleteClass(1234567890); } catch (Exception $ex) { die($ex->getMessage()); }
getAssessments() - returns a list with your school Assessments
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $assessments = $Imaginie->getAssessments(); var_dump($assessments);
response:
[ { "id": 742, "theme": 399, "theme_title": "Ocupação das escolas de São Paulo: a educação é para todos?", "classes": [ { "code": "XPTOEM3A", "name": "A", "description": "XPTO/EnsinoMedio/3/A" } ], "created": "2017-08-06T00:04:03.382545", "school_correction": false, "school_payment": false, "number_of_corrections": 1, "drafts_available": "2017-01-01T00:00:00", "deadline": "2017-12-01T00:00:00", "draft_count": 0, "sent_count": 0, "finished_count": 0 }, { "id": 742, "theme": 399, "theme_title": "Ocupação das escolas de São Paulo: a educação é para todos?", "classes": [ { "code": "XPTOEM3A", "name": "A", "description": "XPTO/EnsinoMedio/3/A" } ], "created": "2017-08-06T00:04:03.382545", "school_correction": false, "school_payment": false, "number_of_corrections": 1, "drafts_available": "2017-01-01T00:00:00", "deadline": "2017-12-01T00:00:00", "draft_count": 0, "sent_count": 0, "finished_count": 0 } ]
getAssessment($id) - returns a specific Assessment
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $assessment = $Imaginie->getAssessment(1234567890); var_dump($assessment);
response:
{ "id": 1234567890, "theme": 399, "theme_title": "Ocupação das escolas de São Paulo: a educação é para todos?", "classes": [ { "code": "XPTOEM3A", "name": "A", "description": "XPTO/EnsinoMedio/3/A" } ], "created": "2017-08-06T00:04:03.382545", "school_correction": false, "school_payment": false, "number_of_corrections": 1, "drafts_available": "2017-01-01T00:00:00", "deadline": "2017-12-01T00:00:00", "draft_count": 0, "sent_count": 0, "finished_count": 0 }
createAssessment($theme_id, $drafts_available, $deadline, $class_code=null) - returns an object with the created Assessment
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $assessment = $Imaginie->createAssessment(399, "2017-01-01T00:00:00", "2017-12-01T00:00:00", "XPTOEM3A"); var_dump($assessment);
response:
{ "id": 1234567890, "theme": 399, "theme_title": "Ocupação das escolas de São Paulo: a educação é para todos?", "classes": [ { "code": "XPTOEM3A", "name": "A", "description": "XPTO/EnsinoMedio/3/A" } ], "created": "2017-08-06T00:04:03.382545", "school_correction": false, "school_payment": false, "number_of_corrections": 1, "drafts_available": "2017-01-01T00:00:00", "deadline": "2017-12-01T00:00:00", "draft_count": 0, "sent_count": 0, "finished_count": 0 }
updateAssessment($id, $name, $email, $code=null, $class_code=null) - returns an object with the updated Assessment
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); $assessment = $Imaginie->updateAssessment(1234567890, 399, "2017-01-01T00:00:00", "2017-12-01T00:00:00", "XPTOEM3A"); var_dump($assessment);
response:
{ "id": 1234567890, "theme": 399, "theme_title": "Ocupação das escolas de São Paulo: a educação é para todos?", "classes": [ { "code": "XPTOEM3A", "name": "A", "description": "XPTO/EnsinoMedio/3/A" } ], "created": "2017-08-06T00:04:03.382545", "school_correction": false, "school_payment": false, "number_of_corrections": 1, "drafts_available": "2017-01-01T00:00:00", "deadline": "2017-12-01T00:00:00", "draft_count": 0, "sent_count": 0, "finished_count": 0 }
deleteAssessment($id)
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); try { $Imaginie->deleteAssessment(1234567890); } catch (Exception $ex) { die($ex->getMessage()); }
getStudentEssays($student_code, $essay_status=null)
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); try { $Imaginie->getStudentEssays('STD001'); } catch (Exception $ex) { die($ex->getMessage()); }
response:
[ { "id": 331324, "theme": { "id": 564, "title": "Impactos ambientais do consumo no século XXI", "signed_thumb": "https://s3-sa-east-1.amazonaws.com/img.br/images/themes/2017/2/21/bb82b544-f85a-11e6-b266-024749005da7/impactos-ambientais-do-consumojpg?Signature=GrtYmaMB1%2FyWEtxYmUC3hxa%2Bl7A%3D&Expires=1502162722&AWSAccessKeyId=AKIAJT6DYWKITELZRSQQ", "school": null }, "status": "CORRECTED", "assessment": null, "final_score": 0, "created": "2017-03-06T22:54:54Z", "report": "Fuga ao tema", "exam": 2, "school": { "logo": "https://app.imaginie.com/static/images/logo-icone-50px.png", "name": "Imaginie" }, "author": 24765, "author_code": "MariaZ", "sent_correction": "2017-03-06T22:59:21Z", "finished": "2017-06-20T17:10:33Z", "deadline": null, "criteria_values": [ { "name": "Critério 1 - Demonstrar domínio da norma culta", "criteria_value": 0, "color": "#ffff00" }, { "name": "Critério 2 - Compreender a Proposta", "criteria_value": 0, "color": "#ff9634" }, { "name": "Critério 3 - Selecionar, relacionar argumentos", "criteria_value": 0, "color": "#5e7bff" }, { "name": "Critério 4 - Conhecer os mecanismos linguísticos para a construção da argumentação", "criteria_value": 0, "color": "#0cff66" }, { "name": "Critério 5 - Elaborar a proposta de solução para o problema ", "criteria_value": 0, "color": "#fe02ff" } ] }, { "id": 331323, "theme": { "id": 564, "title": "Impactos ambientais do consumo no século XXI", "signed_thumb": "https://s3-sa-east-1.amazonaws.com/img.br/images/themes/2017/2/21/bb82b544-f85a-11e6-b266-024749005da7/impactos-ambientais-do-consumojpg?Signature=7nYB9EypC1Aoevn8Gm9ENofdDnI%3D&Expires=1502161673&AWSAccessKeyId=AKIAJT6DYWKITELZRSQQ", "school": null }, "status": "CORRECTED", "report": "Válida", "assessment": null, "final_score": 840, "created": "2017-03-06T20:16:51Z", "exam": 2, "school": { "logo": "https://app.imaginie.com/static/images/logo-icone-50px.png", "name": "Imaginie" }, "author": 24765, "author_code": "123456", "sent_correction": "2017-03-06T22:59:01Z", "finished": "2017-06-19T13:23:09Z", "deadline": null, "criteria_values": [ { "name": "Critério 1 - Demonstrar domínio da norma culta", "criteria_value": 120, "color": "#ffff00" }, { "name": "Critério 2 - Compreender a Proposta", "criteria_value": 160, "color": "#ff9634" }, { "name": "Critério 3 - Selecionar, relacionar argumentos", "criteria_value": 200, "color": "#5e7bff" }, { "name": "Critério 4 - Conhecer os mecanismos linguísticos para a construção da argumentação", "criteria_value": 160, "color": "#0cff66" }, { "name": "Critério 5 - Elaborar a proposta de solução para o problema ", "criteria_value": 200, "color": "#fe02ff" } ] } ]
createEssay($student_code, $theme_id, $assessment_id, $request_correction, $school_correction, $image_url, $comments_required)
<?php require_once '/path/to/vendor/autoload.php'; use ApiClient\Imaginie; $Imaginie = new Imaginie('your@login.com', 'your-password'); try { $Imaginie->createEssay(24765, 399, 743, true, false, 'http://www.google.com', true); } catch (Exception $ex) { die($ex->getMessage()); }
response:
{ "id": 334575, "author": 24765, "theme": 399, "assessment": 743, "font_size": null, "text": null, "request_correction": true, "ready_to_correction": false, "image_url": "http://www.google.com", "uuid_str": "7a5b2f99-7a43-11e7-b0b1-14109fe485f7", "created": "2017-08-06T01:06:21.724551", "finished": null, "comments_required": false }
Samples
There is a samples folder with many examples
API Docs
- Imaginie API v3 doc - Doc of our last API version