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-timestamp1970年1月1日 00:00:00 協定世界時(UTC)からの経過時間をミリセカンド(Millisecond)で表し、
    API Gatewayサーバとの時間差が5分以上の場合は無効なリクエストとしてみなす。

    x-ncp-apigw-timestamp:{Timestamp}
    x-ncp-apigw-api-keyAPIGWで発行されたキーの値
    x-ncp-apigw-api-key:{API Gateway API Key}
    x-ncp-iam-access-keyNaverクラウドプラットフォームポータルで発行されたAccess Key IDの値
    x-ncp-iam-access-key:{Account Access Key}
    x-ncp-apigw-signature-v1Access Key ID値とSecret Keyで暗号化した署名
    x-ncp-apigw-signature-v1:{API Gateway Signature}
    Content-TypeRequest 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エラー詳細説明
    エラーコード説明
    E900Pathパラメータエラー
    E901WORKBOX > Developers API設定のOn/Off
    E902Bodyパラメータエラー
    E903基本設定情報をNOに設定
    E904externalKey有効性エラー
    E1001サーバ内部エラー
    E1003写真ファイルアップロード失敗
    {
        "resultCode": "E901",
        "resultMessage": "Please check if API is used in the developer console."
    }
    
    HTTPステータスコードレスポンスメッセージ説明
    200OK一般的なリクエスト成功
    201Createdリソース作成成功に対するレスポンスコード
    400Bad Request一般的なリクエスト失敗に使用(大体、サーバが理解できない形式のリクエストの場合にレスポンスするため使用)
    500Internal Server Error一般的なサーバエラーに対するレスポンスコード、4XX代のエラーコードがクライアント側のエラーを表示するために使われるのであれば、
    5XX代のエラーコードはサーバ側のエラーを表示するために使われます。

    この記事は役に立ちましたか?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.