2 Star 2 Fork 0

Bennent_G / ILab-extend

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
README.en.md 5.47 KB
一键复制 编辑 原始数据 按行查看 历史
Bennent_G 提交于 2021-07-14 19:01 . repaire attachment_upload

ILab-x 2.0对接 (PHP)

Description

国家虚仿平台iLab-x 2.0对接(PHP版)类库

Install

1 下载源码包
2 作为第三方类库引入项目

Remark

  • 适用版本php > 5.5.0
  • 此类库适用iLab-x 2.0 相关接口
  • 含获取用户信息和access_token、刷新token、实验结果回传、附件上传四个接口
  • 接口名称同iLab-x 2.0 接口名称一致
  • 接口返回数据格式、异常同iLab-x 2.0接口一致
  • 各接口参数、格式以及异常说明可查看iLab-x接口说明国家虚仿项目接入

Example

  • 获取用户信息和ACCESS_TOKEN
use ILab\ILab;

class Example
{
    /**
    * TOKEN有效期及用户信息请自行保存
    */
    public function token()
    {
        // APPID是由“实验空间”分配给各实验平台的唯一编号
        // SECRET是由“实验空间”分配给各实验平台的密钥 
        $ilab = new ILab(APPID, SECRET);
        // TICKET:iLab实验中心详情页点击“我要做实验”按钮获取的令牌
        // !!!注意 获取原始ticket即可,类库中已作相关解析编码处理,即此处TICKET无需decode处理
        $response = $ilab->token(TICKET)
    }
}

```
返回示例:
array:8 [
  "code" => 0
  "access_token" => "JQXIvOb3lNoNZrt5EPUWA2wse2ws9r/ZQKQyeG4TNJGLZqnM3HvyycIs9EqLXKPPS+LfsHHxk8NY0AGJY4KO6+n72BYohwQPDmOzB38a5mA="
  "create_time" => 1626158597225
  "create_time_display" => "2021-07-13 14:43:17"
  "expires_time" => 1626244997225
  "expires_time_display" => "2021-07-14 14:43:17"
  "un" => "test1"
  "dis" => "贾宝玉"
]
```
  • 刷新ACCESS_TOKEN
use ILab\ILab;

class Example
{
    public function refresh()
    {
        // APPID是由“实验空间”分配给各实验平台的唯一编号
        // SECRET是由“实验空间”分配给各实验平台的密钥 
        $ilab = new ILab(APPID, SECRET);
        // TOKEN:获取token接口返回的access_token
        $response = $ilab->refresh(TOKEN)
    }
}

```
返回示例:
array:6 [
  "code" => 0
  "access_token" => "JQXIvOb3lNoNZrt5EPUWA2wse2ws9r/ZQKQyeG4TNJGvszvCtVAPAecN5M40ZDaiS+LfsHHxk8NY0AGJY4KO61YEsC5tiwvGBKgqeZJT1DQ="
  "create_time" => 1626159105389
  "create_time_display" => "2021-07-13 14:51:45"
  "expires_time" => 1626245505389
  "expires_time_display" => "2021-07-14 14:51:45"
]
```
  • 实验结果数据回传
use ILab\ILab;

class Example
{
    public function refresh()
    {
        /**
        * 注意事项:
        * 1、请自行生成唯一性originId(平台唯一且由大小写字母、数字、“_”组成)
        * 2、实验步骤记录(不少于十步)
        * 3、请注意实验气质时间(13位时间戳)、以及实验用时(单位:秒)
        */
        $data = [
            "username" => "test1",
            "title" =>"上传测试111",
            "status" => 1,
            "score"=>100,
            "startTime"=>1626161547000,
            "endTime"=>1626162027000,
            "timeUsed"=>480,
            "appid"=>"100400",
            "originId"=> 'test1_16261615470',
            "steps"=> [
                [
                    "seq" => 1,
                    "title"=> "实验步骤1",
                    "startTime"=> 1626161548000,
                    "endTime"=> 1626161567000,
                    "timeUsed"=> 19,
                    "expectTime"=>2,
                    "maxScore"=>10,
                    "score"=>10,
                    "repeatCount"=>1,
                    "evaluation"=>"优",
                    "scoringModel"=>"赋分模型",
                    "remarks"=>"备注"
                ],
                [
                    "seq" => 2,
                    "title"=> "实验步骤1",
                    "startTime"=> 1626161567000,
                    "endTime"=> 1626161569000,
                    "timeUsed"=> 2,
                    "expectTime"=>2,
                    "maxScore"=>10,
                    "score"=>10,
                    "repeatCount"=>1,
                    "evaluation"=>"优",
                    "scoringModel"=>"赋分模型",
                    "remarks"=>"备注"
                ],
                ...
        ];
        // APPID是由“实验空间”分配给各实验平台的唯一编号
        // SECRET是由“实验空间”分配给各实验平台的密钥 
        $ilab = new ILab(APPID, SECRET);
        // TOKEN:获取token接口返回的access_token
        return $ilab->data_upload($token, json_encode($data)));
    }
}

```
返回示例:
array => [
  "code" => 0
  "id" => "48908"
]
```
  • 附件上传
use ILab\ILab;

class Example
{
    public function attachment_upload()
    {
        // APPID是由“实验空间”分配给各实验平台的唯一编号
        // SECRET是由“实验空间”分配给各实验平台的密钥 
        $ilab = new ILab(APPID, SECRET);
        // access_token:获取token接口返回的access_token
        // originId:数据回传接口中生成的唯一originId
        // filename:上传文件的名称,需要带文件扩展名,如:实验报告.pdf,无需对FILENAME进行urlEncode处理
        // title:实验报告名称,无需对TITLE进行urlEncode处理
        // remarks:备注(无备注传空值即可),无需对remarks进行urlEncode处理
        // filePath:带上传附件的绝对路径
        $response = $ilab->attachment_upload(access_token, originId, filename, title, remarks, filePath);
    }
}

```
返回示例
array:2 [
  "code" => 0
  "id" => "1619"
]
```
PHP
1
https://gitee.com/guolixun/ilab-extend.git
git@gitee.com:guolixun/ilab-extend.git
guolixun
ilab-extend
ILab-extend
master

搜索帮助