视频监控-登录
# FastWeb 监控-Shinobi-登录
以下我们以shinobi登录的说明为例,说明在设置接口整合过程中的注意事项。如果尚未了解shinobi,请参阅shinobi说明,以下是shinobi登录的接口说明:
- 请求地址:
http:/?json=true
请求方式:POST
ContentType:
application/json请求主体Body
{
"machineID": "jsiqsju2wesqw2",
"mail": "admin@isoface.cn",
"pass": "admin",
"function": "dash"
}
2
3
4
5
6
| 参数名 | 示例值 | 参数类型 | 是否必填 | 参数描述 |
|---|---|---|---|---|
| machineID | jsiqsju2wesqw2 | String | 是 | 可以为任何字符串 |
| admin@isoface.cn | String | 是 | 登录使用的用户名 | |
| pass | admin | String | 是 | 登录密码 |
| function | dash | String | 是 | 登录的模式,默认为dash |
- 响应成功示例
由于响应的示例内容过长,此处不进行展示。其中包含auth_token与group key,在之后需要进行使用。
- 响应失败示例(登录的用户名或者密码错误)
{
"ok": false
}
2
3
# 1. 分析
根据对上述接口的地址分析,可以将地址拆分成基础地址与请求参数两部分。其中?之前的为RestAPI请求的基础地址,其地址为shinobi使用的服务访问地址;?之后的为请求参数,比如此处的请求参数为json=true。
点击[系统工具]-[接口整合(Server)],打开接口整合界面,输入API供应商以及API服务器的地址,填写相关说明,点击[保存]。

点击[系统工具]-[接口整合(API)],打开接口整合(API)界面,在其中设置shinobi的RestAPI请求信息。
点击[添加]按钮,打开添加API界面,在其中输入API的信息。
API名称与API描述部分可自行设置。

API供应商处选择刚才创建的API供应商。
上文的API说明中已指出使用的Content-Type以及请求方法,此处按照说明中提供的内容选择。
URL处设置额外的路径信息,上文的API中未包含,此处可留空。
Params处填写请求的URL中?后的参数部分,填写json。
Body处填写请求的主体内容。

保存后,点击[保存]按钮,返回管理页面。
找到刚才创建的API,点击[API测试],打开API管理器界面,在当前界面下,点击[send]按钮,观察Rest Server answer处显示的内容,如果显示的内容为下图样式的,则设置完成。

# 2. 用法
按照FastWeb快速上手的方法进入至模块设计界面,在设计页面上放置一个TUgButton与TUgRestApi控件,双击UgRestApi01,打开管理页面,选择监控-Shinobi-登录,点击[OK]按钮导入此API,设置UgButton01的OnClick事件与UgRestApi01的ResultData事件。以下给出示例用来提取获取到的AuthToken与GroupKey。
procedure UgButton01OnClick(sender: tobject);
//登录按钮
Var
vString: String;
begin
UgRestApi01.Send;
end;
procedure UgRestApi01ResultData(sender: tobject;aresult: string);
//登陆获取token
var
vJSON: TJSONObject;
vValue: TJSONValue;
shinobiAuthToken,shinobiGroupKey: String;
begin
vJSON := TJSONObject.Create;
vValue := TJSONValue.Create;
Try
vJSON := TJSONObject(vJSON.ParseJSONValue(aresult,False,False));
shinobiAuthToken := UGCM.GetJSONString(vJSON,'$user.auth_token');
shinobiGroupKey := UGCM.GetJSONString(vJSON,'$user.ke');
ShowMessage('auth_token:' + shinobiAuthToken + ' group_key:' + shinobiGroupKey);
Finally
vJSON.Free;
vValue.Free;
End;
end;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27