イントロ

独自のカスタマイズやその他の目的でRESTfulAPIとしてBioStar2 New Local APIを使用する場合は、この記事を参照してください。この記事では、C#コンソールアプリケーションによるBioStar 2 New Local APIの基本的な使用法について説明します。   

 


機能

この記事では、以下の機能について説明します。

  1. ログイン
  2. ユーザー検索
  3. ユーザー追加
  4. アクセスグループにユーザーを追加
  5. ログデータの取得
  6. 順序でログデータの取得


*アクセスグループの作成に関する記事 

http://kb.supremainc.com/knowledge/doku.php?id=ja:how_to_make_access_groups


この記事では、API呼び出しを介してユーザーを作成するときに、ユーザーをアクセスグループに追加する方法を確認します。 

 API呼び出し用に作成されたC#プログラムのサンプルコードをご覧ください。ソースコードをコピーして貼り付けて同じ機能を使用できます。

また、RESTfulAPI呼び出しに使用するプログラムであるPostmanを介してAPI関数を呼び出す方法も確認します。


 

Part 1. API呼び出しとパラメーター  

 

[POST]: /users

[パラメーター]

グループ名称サブグループタイプ*M/O詳細バリュー
Username
stringMユーザー名称

Email
stringOメールアドレスaaa@suprema.co.kr

Photo
stringOユーザー画像

Phone
string
O電話番号

User_id
stringM
ユーザーID

User_group_ididIntegerMユーザーグループID

Disabled
BooleanMユーザー状態Ex) false

Start_datetime
stringM有効期間_開始日時2001-01-01T00:00:00.00Z 

Expiry_datetime
stringM有効期限_終了日時
2030-12-31T23:59:00.00Z

PermissionidstringO
捜査権限ID

Permission ID(Get_/api/permissions)

1(Administrator)

2(User Operator)

3(Monitoring Operator)

..(CustomId)

253(Video)

254(TA)

255(User)

100000(Visitor)



NamestringOTest


DescriptionstringO説明


Operator - namestringOユーザー名称


Operator[] - owner_idstringO捜査権限ID

Permission ID(Get_/api/permissions)

1(Administrator)

2(User Operator)

3(Monitoring Operator)

..(CustomId)

253(Video)(Get_/api/permissions)

1(Administrator)

2(User Operator)

3(Monitoring Operator)

..(CustomId)

253(Video)

254(TA)

255(User)

100000(Visitor)

254(TA)

255(User)

100000(Visitor)



Operator[] - user_idstringOユーザーID

Access_groupsNamestring
Oアクセスグループ名称既に存在


IdIntegerOアクセスグループID既に存在

Password
stringOパスワード

Pin
string
OPIN

Login_id
string
OログインID

User_ip
string
OユーザーIP

Fingerprint_templates[]
string
O指紋バイナリデータ
エンコードされたBase64文字列



string
O指紋バイナリデータ
エンコードされたBase64文字列


Finger_maskBooleanOフィンガーマスク


isNewBooleanO新しい指紋

CredentialsFaces[] - raw_imagestringO顔イメージデータ


Faces[] - templates - templatestringO顔認証データ -顔バイナリデータ


Faces[] - FlagstringO顔フラッグ


Faces[] - userProfileBooleanO顔データプロフィール画像使用


Faces[] - IndexIntegerO顔インデックス

Cards[]Card_type - idstringOカードタイプID(0:CSN, 1:WIEGAND, 2:SECURE, 3:ACCESS, 4:CSN_MOBILE, 5:WIEGAND_MOBILE, 6:QR/Barcode, 7:BioStar 2 QR)


Card_type - namestringOカードタイプ名称


Card_type - typestringOカードタイプ(0:CSN, 1:WIEGAND, 2:SECURE, 3:ACCESS, 4:CSN_MOBILE, 5:WIEGAND_MOBILE, 6:QR/Barcode, 7:BioStar 2 QR)


Card_type - modestringOカードモード(C:CSN, S:SECURE, A:ACCESS, M:CSN_MOBILE)


Card_idstringOカードID


Display_card-idstringOカードID表示


IdstringOID*BioStar 2のカードID(通常は登録順に作成されます)


cardIdstringOWiegandカード Id(Wiegand使用)


Wiegand_format_id - idstringOWiegandフォーマットId


Wiegand_format_namestringOWiegandフォーマット名称(Wiegand使用)

M – 必須, O - オプション 

 


Part 2. リクエストボディとレスポンスモデル 

[必須値入力例]

{

    "User": {

        "name": "AGTEST",

        "user_id": "99999",

        "user_group_id": {

            "id": 1,

            "name": "All Users"

        },

        "disabled": "false",

        "start_datetime": "2001-01-01T00:00:00.00Z",

        "expiry_datetime": "2030-12-31T23:59:00.00Z",

        "access_groups": [{

            "name": "TTTEST",

            "id": 15

        }

        ],

        "login_id": "api2",

        "password": "Peter3820@"

    }

}

 

[レスポンス: エラー] 

{

  "Response": {

    "code": "202",

    "link": "https://support.supremainc.com/en/support/home",

    "message": "User who has same id already exists"

  }

}

[レスポンス: 成功] 

{

  "UserCollection": {

    "total": "1",

    "rows": [

      {

        "user_id": "99999",

        "name": " AGTEST "

      }

    ]

  },

  "Response": {

    "code": "0",

    "link": "https://support.supremainc.com/en/support/home",

    "message": "Success"

  }

}

 


Part 3. コンソールユーザー追加の例  

[ユーザー追加ソースコード 

static async void CreateUserTask()  

        {

            if (sessionID == null)

            {

                Console.WriteLine("You must log in first!");

                return;

            }

            CookieContainer cookieContainer = new CookieContainer();

 

            HttpClientHandler handler = new HttpClientHandler();

            handler.CookieContainer = cookieContainer;

 

            HttpClient httpClient = new HttpClient(handler);

 

            HttpClient client = new HttpClient(handler);

            httpClient.DefaultRequestHeaders.Add("bs-session-id", sessionID);

            cookieContainer.Add(new Uri("https://127.0.0.1"), new Cookie("bs-session-id", sessionID));

 

            string resourceAddress = "https://127.0.0.1/api/users";

 

            JavaScriptSerializer serializer = new JavaScriptSerializer();

            Console.WriteLine("Enter USER NAME: ");

            string UserName = Console.ReadLine();

            Console.WriteLine("Enter USER ID: ");

            string UserID = Console.ReadLine();

            Console.WriteLine("Enter USER LOGIN ID: ");

            string User_login_id = Console.ReadLine();

            Console.WriteLine("Enter USER LOGIN PASSWORD: ");

            string User_login_pw = Console.ReadLine();

 

            string payload2 = "{ \"User\": ";

            payload2 = payload2 + "{\"name\": \"" + UserName + "\", ";

            payload2 = payload2 + "\"user_id\": \"" + UserID + "\",";

            payload2 = payload2 + "\"user_group_id\": { \"id\": 1, \"name\": \"All Users\" },\"disabled\": \"false\",\"start_datetime\": \"2001-01-01T00:00:00.00Z\", \"expiry_datetime\": \"2030-12-31T23:59:00.00Z\", ";

            payload2 = payload2 + "\"access_groups\"": [{\"name\": \"TTTEST\",\"id\": 15 }],";

            payload2 = payload2 + "\"login_id\": \""+ User_login_id +"\", ";

            payload2 = payload2 + "\"password\": \"" + User_login_pw  + "\"}}";

            Console.WriteLine(payload2);

            StringContent sc = new StringContent(payload2, Encoding.UTF8, "application/json");

            

            HttpResponseMessage httpResponse = httpClient.PostAsync(resourceAddress, sc).Result;

 

 

            if (httpResponse.IsSuccessStatusCode == true)

            {

                Console.WriteLine("User has been created");

                string httpResponseBody = await httpResponse.Content.ReadAsStringAsync();

                   Console.WriteLine(httpResponseBody);

            }

            else

            {

                Console.WriteLine("User Creation Failed");

                   Console.WriteLine(httpResponse.ToString());

            }

        }

 

[ユーザー追加成功]  

 


Part 4. Postman経由でユーザー追加 

 

[リクエスト例: ヘッダー] 

*他のAPI呼び出しでのAPIの使用を認証するには、LoginAPI呼び出しのレスポンスヘッダーの「be-session-id」値を入力してください。 

텍스트, 스크린샷, 모니터, 실내이(가) 표시된 사진 
자동 생성된 설명

 

[リクエスト例

텍스트이(가) 표시된 사진 
자동 생성된 설명

 

[レスポンス例: body

텍스트이(가) 표시된 사진 
자동 생성된 설명