視訊監控-登錄
# 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