ServiceNow REST API の利用方法
はじめに
ServiceNowのREST APIを利用してデータ連携する機会があったので、REST APIの利用方法について説明する。
利用方法
調査した利用方法は以下の通りである。
- POSTMANの認証情報を設定する。
- テーブルAPIを利用して、検索や登録、更新、削除を実行する。
- インポートセットAPIを利用して、登録する。
- AttachmentAPIを利用して、添付ファイルをアップロードする。
利用詳細
1.POSTMANの認証情報を設定する。
POSTMANでServiceNowのAPIを利用する場合に、アクセストークンが必要である。
POSTMANのOAuth認証について説明する。

POSTMANの認証情報の設定は以下の通り。
GrandType: implicit
Callback URL: {OAuth Callback URL}
Auth URL: https://{instance-id}.service-now.com/oauth_auth.do
Client ID: {OAuth Client ID}
Client Authentication: Send as Basic Auth header
APIを利用してトークンを取得したい場合は以下の通り。

リクエスト情報は以下の通り。
URL: POST https://{instance-id}.service-now.com/oauth_token.do
Request body:
grant_type: password
client_id: {OAuth client ID}
client_secret: {OAuth client secret}
username: admin
password: {password}
2.テーブルAPIを利用して、検索や登録、更新、削除を実行する。
インシデントテーブルの検索APIは以下の通り。
// 複数レコード検索
URL: GET https://{instance-id}.service-now.com/api/now/table/incident
headers: Authorization: Bearer {access_token}
// 単レコード検索
URL: GET https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
headers: Authorization: Bearer {access_token}
レコードの登録は以下の通り。

URI: POST https://{instance-id}.service-now.com/api/now/table/incident
Headers:
Authorization: Bearer {access_token}
Content-Type: application/json
Accept: application/json
RequestBody:
{
"short_description": "POSTMAN 登録",
"caller_id": "Beth Anglin"
・・・
}
レコードの更新は以下の通り。

URL: PATCH https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
Headers:
Authorization: Bearer {access_token}
Content-Type: application/json
Accept: application/json
RequestBody:
{
"short_description": "POSTMAN 登録",
"caller_id": "Beth Anglin"
・・・
}
レコードの削除は以下の通り。

URL: DELETE https://{instance-id}.service-now.com/api/now/table/incident/{sys_Id}
headers: Authorization: Bearer {access_token}
SOAP APIで添付ファイルアップロードした際の、Queueの結果を確認する場合は、下記のリクエストで確認する。
URI: POST https://{instance-id}.service-now.com/api/now/table/ecc_queue?sys_id={sys_id}
headers: Authorization: Bearer {access_token}
SOAP APIの構造を確認したい場合は、下記のリクエストで確認する。
URL: GET https://{instance-id}.service-now.com/ecc_queue.do?WSDL
headers: Authorization: Bearer {access_token}
レコード毎に添付ファイル情報を取得したい場合は、以下のリクエストを送信する。
URI: GET https://{instance-id}.service-now.com/api/now/table/sys_attachment?table_sys_id={record_sys_id}
headers: Authorization: Bearer {access_token}
3.インポートセットにレコードを登録する。
インポートセットにレコードを登録する。

リクエスト情報は以下の通り。
URI: GET https://{instance-id}.service-now.com/{table name}_list.do?CSV
4.添付ファイルをアップロードする。
Attachment APIを利用してレコードに添付ファイルをアップロードする。
POSTMANの実行は以下の通り。

リクエスト情報は以下の通り。
URL: POST https://dev95120.service-now.com/api/now/attachment/file
Headers:
Authorization: Bearer {access_token}
QueryParameters:
file_name: {File name(拡張子)}
table_name: incident
table_sys_id: {Record Sys ID}
RequestBody:
Binary data
ServiceNowの画面から添付ファイルがアップロードされていることを確認できる。

さいごに
いかがだったでしょうか?
ServiceNowのAPIの利用手順について説明しました。
ぜひ、活用してみてください。では、






