imaginie / api-client
Imaginie PHP API Client
Installs: 32
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 8
Forks: 0
Open Issues: 0
pkg:composer/imaginie/api-client
Requires
- php: >=7.1.0
This package is auto-updated.
Last update: 2025-10-13 02:59:01 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