WSD ユーザー API
WSD ユーザー API は、アサインされたワークスペースの場所、オフィス内のプレゼンススケジュール、協力者、過去および将来の予約など、認証されたユーザーの職場コンテキストを返すスクリプト化された REST API です。
この WSD ユーザーは 、 ワークプレイスサービスデリバリ (WSD) 予約製品に搭載されており、関連するすべてのユーザーデータを使用して予約エクスペリエンスを初期化するための単一コールエントリポイントを提供します。この API は ワークプレイスサービスデリバリ Reservation (com.sn_wsd_rsv) プラグイン内にあり、ユーザーの完全な職場 ID と履歴を表示するためのエントリーポイントとして機能します。
認証されたユーザーとは、ログインしているか、認証情報が API 要求に含まれているユーザーです。
- 予約ポータルの初期化:Workplace アプリまたはポータルを開くときに、ユーザーの自宅の場所、スケジュール、および予約履歴を 1 回の呼び出しでロードします。
- カスタムモバイルアプリまたは Web アプリ:フロントエンドの予約エクスペリエンスを構築する場合など、複数のテーブル API 呼び出しをつなぎ合わせることなく、すべてのユーザーコンテキストをフェッチします。
- オフィス内のプレゼンストラッキング:特定の日にオフィスに出社する予定の従業員を特定します。
要件
- sn_wsd_core.workplace_user ロールを持つユーザーレコードが少なくとも 1 つ存在している必要があります。
- アクティブにする ワークプレイスサービスデリバリ Concierge (com.sn_wsd_concierge)、 ワークプレイスサービスデリバリ Core (com.sn_wsd_core)、および ワークプレイスサービスデリバリ Reservation (com.sn_wsd_rsv) プラグイン。
関連 API
sn_wsd_rsv 名前空間の下にある API ファミリーに属しており、一緒に予約ライフサイクル全体をサポートします。- WSD 検索 API:場所、時間、キャパシティの基準に基づいて、利用可能な予約可能スペースを検索します。
- WSD 予約 API:予約を作成し、チェックイン/チェックアウトを管理します。
- WSD 予約可能モジュール API:ユーザーが予約できる内容と予約方法を管理する予約ルール構成を取得します。
WSD ユーザー:GET /api/sn_wsd_rsv/v1/user/context
アサインされたワークプレイスの場所、プレゼンススケジュール、協力者、過去と将来の予約など、認証されたユーザーのワークプレイスコンテキストを取得します。
このエンドポイントを使用して、関連するすべてのユーザーコンテキストを 1 回の呼び出しでロードすることで、予約エクスペリエンスを初期化します。協力者データは、com.sn_wsd_concierge プラグインがアクティブな場合にオプションで含められます。
URL 形式
バージョニングされた URL: /api/sn_wsd_rsv/{api_version}/user/context
デフォルト URL: /api/sn_wsd_rsv/user/context
サポートされている要求パラメーター
| 名前 | 説明 |
|---|---|
| api_version | オプション。アクセスするエンドポイントのバージョン。たとえば、 v1 や v2 などです。最新以外のエンドポイントバージョンを使用する場合にのみ、この値を指定してください。 データタイプ:文字列 |
| 名前 | 説明 |
|---|---|
| include | 応答に関連データを含める値。厳密な等価マッチングを使用します (カンマ区切り解析ではありません)。 注: include は、 ワークプレイスサービスデリバリ コンシェルジュ (com.sn_wsd_concierge) プラグインがアクティブな場合にのみ有効です。 有効な値: 協力者のみ データタイプ:文字列 デフォルト:協力者を応答から除外します。 |
| past_reservations_months | 返却する過去の予約の月数。 データタイプ:数値 最小値: 最大値: デフォルト値: |
| future_reservations_months | 返却する将来の予約の月数。 データタイプ:数値 最小値: 最大値: デフォルト値: |
| 名前 | 説明 |
|---|---|
| なし |
ヘッダー
次の要求ヘッダーと応答ヘッダーは、この HTTP アクションにのみ適用されるか、別の方法でこのアクションに適用されます。REST API で使用される一般的なヘッダーのリストについては、「 サポートされている REST API ヘッダー」を参照してください。
| ヘッダー | 説明 |
|---|---|
| 承認 | 応答本文のデータフォーマット。サポートされているタイプ:application/json、application/xml、text/xml。 |
| 認証 | 認証情報。ベーシック認証またはセッションベースの認証をサポートします。 |
| ヘッダー | 説明 |
|---|---|
| Content-Type | 応答本文のデータ形式:application/json。 |
ステータスコード
この HTTP アクションには、次のステータスコードが適用されます。REST API で使用される可能性のあるステータスコードのリストについては、「 REST API HTTP 応答コード」を参照してください。
| ステータスコード | 説明 |
|---|---|
| 200 | 成功。要求が正常に処理されました。 |
| 500 | 内部サーバーエラー要求の処理中に予期しないエラーが発生しました。応答には、エラーに関する追加情報が含まれています。 |
応答本文のパラメーター (JSON または XML)
| 名前 | 説明 |
|---|---|
| result | 要求の結果を含むオブジェクト。 データタイプ: オブジェクト |
| 協力者 | ユーザーの協力者とそのプレゼンスデータのリスト。 データタイプ:オブジェクトのアレイ |
| collaborators.exceptions | 協力者のオフィス勤務スケジュールがルーチンから逸脱する日付のリスト。 予定されているオフィスへの出席を示す各曜日のブールフラグが含まれています。ユーザーがその日オフィスに出社する予定がある場合は データタイプ:オブジェクトのアレイ |
| collaborators.name | 協力者の表示名。例: Jane Smith。 データタイプ:文字列 |
| collaborators.routine | 協力者の毎週の定期的なオフィス勤務スケジュール。schedule.routineと同じ曜日のブール構造に従います。 値 データタイプ: オブジェクト |
| collaborators.sys_id | 協力者のユーザーレコードのSys_id。 テーブル: ユーザー [sys_user] データタイプ:文字列 |
| 予約 | ユーザーの過去および将来の予約を含むオブジェクト。プライベート予約および場所なしの予約は除外されます。 1 方向あたり最大 100 件の予約。 状況 (確認済み、完了) でフィルタリングされます。 データタイプ: オブジェクト |
| reservations.future | 要求された月の範囲内のユーザーの将来の予約のリスト。開始日時 (早い順) 順に並べ替えられます。 データタイプ:オブジェクトのアレイ |
| reservations.future.building | 予約した場所が存在する建物。 データタイプ: オブジェクト |
| reservations.future.building.name | 建物の表示名。例: 本社ビル A。 データタイプ:文字列 |
| reservations.future.building.sys_id | 建物レコードのSys_id。 テーブル:職場の建物 [sn_wsd_core_building] データタイプ:文字列 |
| reservations.future.end | 予約の終了日時 (UTC) 形式:yyyy-MM-dd HH:mm:ss データタイプ:文字列 |
| reservations.future.location | 予約済みスペース。 データタイプ: オブジェクト |
| reservations.future.location.name | 予約場所の表示名。たとえば、「 Desk 42」などです。 データタイプ:文字列 |
| reservations.future.location.sys_id | 予約場所のSys_id。 テーブル:職場の場所 [sn_wsd_core_workplace_location] データタイプ:文字列 |
| reservations.future.number | わかりやすい予約番号。たとえば、 RSV0001234 などです。 データタイプ:文字列 |
| reservations.future.start | 予約の開始日時 (UTC) 形式:yyyy-MM-dd HH:mm:ss データタイプ:文字列 |
| reservations.future.state | 予約の現在のステータス。 有効な値:
データタイプ:文字列 |
| reservations.future.subject | 予約の件名またはタイトル。たとえば、 チームスタンドアップデスクなどです。 データタイプ:文字列 |
| reservations.future.sys_id | 予約レコードのSys_id。 テーブル:職場予約 [sn_wsd_rsv_reservation] データタイプ:文字列 |
| reservations.past | 要求された月の範囲内のユーザーの過去の予約のリスト。開始日時順 (最新順) の順に並べ替えられます。 reservation.futureと同じアレイ構造に従います。 データタイプ:オブジェクトのアレイ |
| schedule | ユーザーのオフィス勤務スケジュール (繰り返しの週次ルーチンや例外など)。 注: com.sn_wsd_concierge プラグインが非アクティブな場合、ルーチンは null で、例外は空のアレイです。 データタイプ: オブジェクト |
| schedule.exceptions | ユーザーのオフィス勤務スケジュールがルーチンから逸脱する日付のリスト。 データタイプ:オブジェクトのアレイ |
| schedule.exceptions.date | この例外が適用される日付 (yyyy-MM-dd 形式)。これは、ユーザーのルーチンが上書きされる日付です。 データタイプ:文字列 |
| schedule.exceptions.in_office | この日付にユーザーがオフィスにいるかどうかを示すフラグ。これにより、スケジュールで指定されている曜日が上書きされます。 有効な値:
データタイプ:文字列 |
| schedule.exceptions.location | この日付におけるユーザーのオフィス所在地の名前または識別子。in_officeが true の場合にのみ関連します。ユーザーがリモートの場合、空の文字列になることがあります。データタイプ:文字列 |
| schedule.exceptions.origin | 例外を作成したソース。 有効な値:
データタイプ:文字列 |
| schedule.exceptions.sys_id | 例外レコードのSys_id。 テーブル:従業員プレゼンスの例外 (sn_wsd_concierge_employee_presence_exception) データタイプ:文字列 |
| schedule.routine | ユーザーの毎週の定期的なオフィス勤務スケジュール。各フィールドは曜日を表すブール値で、ユーザーがその日にオフィスに出社するようにスケジュールされているかどうかを示します。 値 データタイプ: オブジェクト |
| workplace_location | フロア、建物、敷地の詳細など、ユーザーにアサインされた職場の場所。 データタイプ: オブジェクト |
| workplace_location.building | ワークプレイスの場所が存在する建物。 データタイプ: オブジェクト |
| workplace_location.building.name | 建物の表示名。例: 本社ビル A。 データタイプ:文字列 |
| workplace_location.building.sys_id | 建物レコードのSys_id。 テーブル:職場の建物 [sn_wsd_core_building] データタイプ:文字列 |
| workplace_location.campus | 建物が存在する敷地。 データタイプ: オブジェクト |
| workplace_location.campus.name | 敷地の表示名。たとえば、「 メインキャンパス」などです。 データタイプ:文字列 |
| workplace_location.campus.sys_id | 敷地レコードのSys_id。 テーブル:職場の敷地 [sn_wsd_core_campus] データタイプ:文字列 |
| workplace_location.floor | 職場の場所が存在するフロア。 データタイプ: オブジェクト |
| workplace_location.floor.name | フロアレコードのSys_id。 テーブル:職場フロア [sn_wsd_core_floor] データタイプ:文字列 |
| workplace_location.floor.sys_id | フロアの表示名。たとえば、 フロア 3 などです。 データタイプ:文字列 |
| workplace_location.name | ユーザーにアサインされた職場の場所の表示名。例: デスク 42 - フロア 3。 データタイプ:文字列 |
| workplace_location.sys_id | ユーザーのアサインされた職場の場所のSys_id。 テーブル:職場の場所 [sn_wsd_core_workplace_location] データタイプ:文字列 |
cURL 要求
次の例では、協力者、過去の 1 か月分の予約、および将来の 6 か月分の予約を含む、認証されたユーザーの完全な職場コンテキストを取得します。
curl "https://<instance>.service-now.com/api/sn_wsd_rsv/v1/user/context?include=collaborators&past_reservations_months=1&future_reservations_months=6" \
--request GET \
--header "Accept: application/json" \
--user "username:password"
応答本文。
{
"result": {
"workplace_location": {
"sys_id": "a1b2c3d4e5f6g7h8",
"name": "Desk 42 - Floor 3",
"floor": { "sys_id": "f1a2b3c4", "name": "Floor 3" },
"building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" },
"campus": { "sys_id": "c1d2e3f4", "name": "Main Campus" }
},
"schedule": {
"routine": {
"monday": true, "tuesday": true, "wednesday": false,
"thursday": true, "friday": false, "saturday": false, "sunday": false
},
"exceptions": []
},
"collaborators": [
{
"sys_id": "d4e5f6g7",
"name": "Jane Smith",
"routine": { "monday": true, "tuesday": false, "wednesday": true,
"thursday": true, "friday": false, "saturday": false, "sunday": false },
"exceptions": []
}
],
"reservations": {
"past": [
{
"sys_id": "r1e2s3v4",
"number": "RSV0001234",
"start": "2026-04-01 09:00:00",
"end": "2026-04-01 17:00:00",
"state": "completed",
"subject": "Team standup desk",
"location": { "sys_id": "l1o2c3", "name": "Desk 42" },
"building": { "sys_id": "b1c2d3e4", "name": "HQ Building A" }
}
],
"future": []
}
}
}