직장 커넥터 웹후크 API
직장 커넥터 웹후크 API는 다양한 종류의 직장 하드웨어 또는 센서(예: 배지 시스템 또는 점유 센서)의 데이터를 직장 서비스 제공 테이블에 저장할 수 있는 일반 인터페이스입니다.
이 API는 sn_wsd_wc 네임스페이스에서 실행됩니다. 이 API에 액세스하려면 com.sn_wsd_wc(작업 공간 커넥터) 플러그인을 활성화해야 합니다.
이 API를 호출하기 전에 커넥터 구성 [sn_wsd_wc_connector_config] 및 제공자 구성 [sn_wsd_wc_provider_config] 테이블에서 기록을 구성해야 합니다. 이러한 기록을 구성하는 방법에 대한 자세한 내용은 다음 문서를 참조하십시오 Configure Workplace Connectors.
또한 하드웨어/센서 기반 이벤트 페이로드에서 직원 출석 데이터[sn_wsd_wc_employee_attendance_data] 테이블과 같은 대상 ServiceNow 테이블로의 데이터 변환/매핑을 정의하는 확장점을 설정해야 합니다.
작업 공간 커넥터 웹후크에 대한 자세한 내용은 다음 문서를 참조하십시오 Workplace Connectors.
직장 커넥터 웹후크 - POST /workplace_connector_webhook/event
커넥터 이벤트 [sn_wsd_wc_connector_events] 테이블에 기록을 생성한 다음 엔드포인트의 페이로드에 전달된 하드웨어/센서 기반 이벤트 데이터를 해당 기록의 페이로드 필드에 저장합니다.
엔드포인트는 페이로드를 저장한 후 커넥터 이벤트 기록 내의 상태 필드를 신규로 설정하여 페이로드가 처리되지 않았음을 나타냅니다.
예약된 작업은 커넥터 이벤트 테이블에서 새 배지 기록을 찾아 변환하여 직원 출석 데이터[sn_wsd_wc_employee_attendance_data] 테이블에 기록합니다. 그러면 상태 필드가 처리됨으로 설정됩니다.
커넥터 이벤트 기록의 페이로드 데이터와 직원 출석 데이터 기록 간의 데이터 매핑은 확장점에 정의됩니다. 이 확장점은 연결된 커넥터 구성 [sn_wsd_wc_connector_config] 테이블의 확장점 정의 필드에서 식별됩니다. 이 엔드포인트의 경우 BadgingDataHandler 확장점입니다.
처리됨 상태의 커넥터 이벤트 테이블의 기록은 생성 날짜로부터 2일 후에 제거됩니다. 오류 상태의 기록은 생성 날짜로부터 7일 후에 제거됩니다. 새 상태의 기록은 절대 제거되지 않습니다.URL 형식
버전이 지정된 URL: /api/sn_wsd_wc/{api_version}/workplace_connector_webhook/event
기본 URL: /api/sn_wsd_wc/workplace_connector_webhook/event
지원되는 요청 매개변수
| 이름 | 설명 |
|---|---|
| api_version | 옵션입니다. 액세스할 엔드포인트의 버전입니다. 예를 들어 v1 또는 v2입니다. 최신 버전이 아닌 엔드포인트 버전을 사용하려면 이 값만 지정합니다. 데이터 유형: 문자열 |
| 이름 | 설명 |
|---|---|
| ni.nolog.id | 필수 이벤트 정보를 생성한 하드웨어와 연결된 제공자 구성 기록의 Sys_id입니다. 데이터 유형: 문자열 테이블: 제공자 구성 [sn_wsd_wc_provider_config] |
| token_name | 보안 토큰을 식별하는 사용자 이름 또는 기타 값과 같은 보안 토큰의 이름입니다. 요청을 인증하는 데 사용됩니다. 데이터 유형: 문자열 테이블: 제공자 구성 [sn_wsd_wc_provider_config] |
| token_value | 암호와 같은 보안 토큰과 연결된 값입니다. 요청을 인증하는 데 사용됩니다. 데이터 유형: 문자열 테이블: 제공자 구성 [sn_wsd_wc_provider_config] |
| 이름 | 설명 |
|---|---|
| <페이로드> | 하드웨어/센서 기반 이벤트 데이터의 이름-값 쌍. 이름은 BadgingDataHandler 확장점에서 식별된 이름과 일치해야 합니다. 예: 단일 엔드포인트 호출 내에서 여러 이벤트의 데이터를 전달할 수 있습니다. 각 이벤트의 데이터를 별도의 개체에 전달합니다. 각 이벤트의 데이터는 별도의 직원 출석 데이터 기록에 저장됩니다. 주: 제공된 타임스탬프가 ISO 8601 형식을 준수하는지 확인하여 날짜 구문 분석 문제를 방지합니다. 데이터 유형: JSON 객체 |
헤더
다음 요청 및 응답 헤더는 이 HTTP 작업에만 적용되거나 이 작업에 고유한 방식으로 적용됩니다. REST API에 사용되는 일반 헤더 목록은 지원되는 REST API 헤더를 참조하세요.
| 헤더 | 설명 |
|---|---|
| 수용 | 응답 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 컨텐츠-형식 | 요청 본문의 데이터 형식입니다. application/json만 지원합니다. |
| 헤더 | 설명 |
|---|---|
| 없음 |
상태 코드
다음 상태 코드는 이 HTTP 작업에 적용됩니다. REST API에서 사용되는 가능한 상태 코드 목록은 REST API HTTP 응답 코드를 참조하세요.
| 상태 코드 | 설명 |
|---|---|
| 200 | 성공입니다. 요청이 성공적으로 처리되었습니다. |
| 400 | 잘못된 요청입니다. 잘못된 요청 유형 또는 잘못된 형식의 요청이 탐지되었습니다. |
| 401 | 승인되지 않았습니다. 사용자 자격 증명이 잘못되었거나 전달되지 않았습니다. |
| 404 | 찾을 수 없습니다. 요청한 항목을 찾을 수 없습니다. |
| 500 | 내부 서버 오류입니다. 요청을 처리하는 동안 예기치 않은 오류가 발생했습니다. 응답에는 오류에 대한 추가 정보가 포함되어 있습니다. |
응답 본문 매개변수
| 이름 | 설명 |
|---|---|
| 오류 | 데이터 처리 중에 발생한 오류에 대한 설명입니다. 데이터 유형: 객체 |
| 오류.상세 정보 | 오류에 대한 상세 정보를 제공하는 정보입니다. 데이터 유형: 문자열 |
| 오류.메시지 | 오류 메시지. 데이터 유형: 문자열 |
| 상태 | 엔드포인트 처리의 상태입니다. 가능한 값:
데이터 유형: 문자열 |
cURL 요청
다음 코드 예에서는 이 끝점을 호출하여 커넥터 이벤트 테이블에 여러 카드 판독기 이벤트를 추가하는 방법을 보여 줍니다. 요청을 처리하기 전에 요청이 인증됩니다.
curl http://instance.servicenow.com/api/sn_wsd_wc/v1/workplace_connector_webhook/event?token_name=token&ni.nolog.id=8e666cb0a3053110bc6e146546fcdad1&token_value=babugosha \
--request POST \
--header "Accept:application/json" \
--header "Content-Type:application/json" \
--data --data "{
\"Time zone\": \"(UTC+02:00) Jerusalem\",
\"Event\": \"Access granted\",
\"Door\": \"L_TLV001_A3.07_KITCHEN AREA INT\",
\"Side\": \"Reader - In\",
\"Cardholder\": \" ninat.alem\",
\"First name\": \" Nina T\",
\"Last name\": \" Salem\",
\"Credential\": \" ninat.salem's credential\",
\"Employee ID (Cardholder)\": 10097,
\"Event timestamp\": \"11/07/2022 10:57:24\"
}
{
\"Time zone\": \"(UTC+02:00) Jerusalem\",
\"Event\": \"Access granted\",
\"Door\": \"L_TLV003_A4.07_FRONT ENT\",
\"Side\": \"Reader - In\",
\"Cardholder\": \" joe.blue\",
\"First name\": \" Joe\",
\"Last name\": \" Blue\",
\"Credential\": \" joe.blue's credential\",
\"Employee ID (Cardholder)\": 24098,
\"Event timestamp\": \"11/07/2022 10:59:33\"
}"
응답:
// Successful response
{
"staus": "success"
}
// Error response
{
"error": {
"message": "Events request is invalid. Events query parms incomplete, some fields are missing",
"detail": "Missing fields: token_name, token_value"
}
"status": "failure"
}