imaginie/api-client

此软件包最新版本(dev-master)没有可用的许可证信息。

Imaginie PHP API 客户端

dev-master 2019-03-12 11:26 UTC

This package is auto-updated.

Last update: 2024-09-13 00:13:23 UTC


README

A PHP Client implementation of Imaginie API v3 methods

入门指南

以下说明将帮助您在本地机器上复制项目并运行,用于开发和测试。有关如何在生产系统中部署项目的说明,请参阅部署部分。

先决条件

  • PHP >= 7.1
  • Composer - PHP 的依赖管理器

安装

确保您已满足上述先决条件,然后可以使用 composer 安装我们的库。导航到您的项目文件夹,然后输入

$ composer require imaginie/api-client

用法

Composer 在 vendor 文件夹中生成一个 autoload.php 文件。包含此文件后,您就可以使用我们的库了。

<?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);

获取响应 - 正文和头部

<?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);

实现的方法

login() - 返回 JWT 令牌

<?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() - 返回您的学校学生的列表

<?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);

响应

[
	{
		"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) - 返回特定学生

<?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);

响应

{
	"code": "123456",
	"email": "teste@teste.com.br",
	"name": "João do Teste",
	"class_code": [
		"XPTOEM3A"
	]
}

createStudent($name, $email, $code, $class_code=null) - 返回创建的学生对象

<?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);

响应

{
	"code": "STD001",
	"email": "student@email.com",
	"name": "Michael Jackson",
	"class_code": [
		"ABC123"
	]
}

updateStudent($id, $name, $email, $code=null, $class_code=null) - 返回更新的学生对象

<?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);

响应

{
	"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() - 返回您的学校班级列表

<?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);

响应

[
	{
    "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) - 返回特定班级

<?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);

响应

{
  "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) - 返回创建的班级对象

<?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);

响应

{
  "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) - 返回更新的班级对象

<?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);

响应

{
  "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() - 返回您的学校评估列表

<?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);

响应

[
  {
    "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) - 返回特定评估

<?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);

响应

{
  "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) - 返回创建的评估对象

<?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);

响应

{
  "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) - 返回更新的评估对象

<?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);

响应

{
  "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());
}

响应

[
  {
    "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());
}

响应

{
  "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 文件夹,包含许多示例

API 文档