WORKBOX概要
- 印刷する
- PDF
WORKBOX概要
- 印刷する
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
概要
WORKBOXの組織/構成員/職級/役職/基本情報などを設定できるAPIを提供します。
HTTP方式のPOST/PUT/DELETEメソッド呼び出しを通じて行われます。
共通設定
WORKBOX URL
POST/PUT/DELETE
https://workbox.apigw.ntruss.com/workbox/workbox/openapi/v1
リクエストヘッダ
ヘッダ名 | 説明 |
---|---|
x-ncp-apigw-timestamp | 1970年1月1日 00:00:00 協定世界時(UTC)からの経過時間をミリセカンド(Millisecond)で表し、 API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとしてみなす。 x-ncp-apigw-timestamp:{Timestamp} |
x-ncp-apigw-api-key | APIGWで発行されたキーの値x-ncp-apigw-api-key:{API Gateway API Key} |
x-ncp-iam-access-key | Naverクラウドプラットフォームポータルで発行されたAccess Key IDの値x-ncp-iam-access-key:{Account Access Key} |
x-ncp-apigw-signature-v1 | Access Key ID値とSecret Keyで暗号化した署名x-ncp-apigw-signature-v1:{API Gateway Signature} |
Content-Type | Request body content typeをapplication/jsonに指定Content-Type: application/json |
認証ヘッダ
WORKBOX APIはNaverクラウドプラットフォームAPI Gatewayを通じて提供されるし、API Gatewayに登録されているAPIを使うためには3つの認証キー(Access Key ID, Secret Key, API Key)の発行が必要です。
詳しい内容についてはNAVER Cloud Platform APIをご参考ください。
- 認証キーの作成
- Naverクラウドプラットフォームポータルのマイページ > アカウント管理 > 認証キー管理メニューで新規API認証キー作成をクリックしてAccess Key ID、Secret Keyを作成します。
- もし、Access Key ID、Secret Keyがある場合は該当キーを使います。
リクエスト例示
curl -i -X GET \
-H "x-ncp-apigw-timestamp:1505290625682" \
-H "x-ncp-apigw-api-key:cstWXuw4wqp1EfuqDwZeMz5fh0epaTykRRRuy5Ra" \
-H "x-ncp-iam-access-key:D78BB444D6D3C84CA38A" \
-H "x-ncp-apigw-signature-v1:WTPItrmMIfLUk/UyUIyoQbA/z5hq9o3G8eQMolUzTEo=" \
'https://workplageg.apigw.ntruss.com//calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6'
Signature作成(改行文字は\nを使用)
- リクエストにあわせてStringToSignを作成してからSecretKeyを用いてHmacSHA256アルゴリズムで暗号化した後、Base64でエンコードします。
- この値を
x-ncp-apigw-signature-v1
で使います。
サンプルコード
public String makeSignature() {
String space = " "; // 空白
String newLine = "\n"; // 改行
String method = "GET"; // HTTPメソッド
String url = "/calendar/v1/holiday?year=2018&locale=ko_KR&companyId=e721e2da-29ee-4782-9672-3d2b150ac1a6"; // ドメインを除外した"/"以下の全体url (クエリストリングを含む)
String timestamp = "{timestamp}"; // 現在のタイムスタンプ (epoch, millisecond)
String apiKey = "{apiKey}"; // api key (from api gateway)
String accessKey = "{accessKey}"; // access key id (from portal or Sub Account)
String secretKey = "{secretKey}"; // secret key (from portal or Sub Account)
String message = new StringBuilder()
.append(method)
.append(space)
.append(url)
.append(newLine)
.append(timestamp)
.append(newLine)
.append(apiKey)
.append(newLine)
.append(accessKey)
.toString();
SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256");
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(signingKey);
byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8"));
String encodeBase64String = Base64.encodeBase64String(rawHmac);
return encodeBase64String;
}
共通エラー
HTTPステータスコードでリターンされ、Body情報で伝達する。
パラメータ | 説明 |
---|---|
resultCode | エラーコード |
resultMessage | エラー詳細説明 |
エラーコード | 説明 |
---|---|
E900 | Pathパラメータエラー |
E901 | WORKBOX > Developers API設定のOn/Off |
E902 | Bodyパラメータエラー |
E903 | 基本設定情報をNOに設定 |
E904 | externalKey有効性エラー |
E1001 | サーバ内部エラー |
E1003 | 写真ファイルアップロード失敗 |
{
"resultCode": "E901",
"resultMessage": "Please check if API is used in the developer console."
}
HTTPステータスコード | レスポンスメッセージ | 説明 |
---|---|---|
200 | OK | 一般的なリクエスト成功 |
201 | Created | リソース作成成功に対するレスポンスコード |
400 | Bad Request | 一般的なリクエスト失敗に使用(大体、サーバが理解できない形式のリクエストの場合にレスポンスするため使用) |
500 | Internal Server Error | 一般的なサーバエラーに対するレスポンスコード、4XX代のエラーコードがクライアント側のエラーを表示するために使われるのであれば、 5XX代のエラーコードはサーバ側のエラーを表示するために使われます。 |
この記事は役に立ちましたか?