詳細はNAVERクラウドプラットフォーム Site Safer API referenceを参考にしてください。

Site Safer API使用ガイドでは、Site SaferのAPIを利用する方法を説明しています。

Site Safer API(Published API)を利用する

Site SaferのAPIはAPI Gatewayを通じて提供されるため、利用する前にAPI Gatewayの利用申請をしてAPI Keyを作成する必要があります。

下のガイドを参照してAPI Gatewayの利用申請をします。

API GatewayのAPI Keysメニューに移動してAPI Keyを作成します。

作成したAPI Keyを用いてSite Safer의 APIを利用します。APIの説明は文書の下段にある関連情報のSite Safer API referenceの内容を参考にしてください。

Site SaferのAPIのSubscription Typeは公開-自由購読(Public)なので、別途の購読手続きなしに作成したAPI Keyを用いて利用できます。

Site Safer商品に会員登録する

Site Saferを利用するには、まずSite Safer商品に会員登録する必要があります。 商品に会員登録する方法はSite Safer使用ガイドを参考にしてください。

認証値を作成する

NAVERクラウドプラットフォームAPIで必要なIAM認証値を作成します。 この認証値はSite Safer APIを呼び出す際にパラメータとして必要になります。 詳細は以下の内容を参照してください。

認証値の作成例

    public static String makeSignature( String method,
                                        String apiUrl,
                                        String timestamp,
                                        String accessKey,
                                        String secretKey ) throws Exception {

        String space = " ";
        String newLine = "\n";

        String message = new StringBuilder()
                .append(method)
                .append(space)
                .append(apiUrl)
                .append(newLine)
                .append(timestamp)
                .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.getEncoder().encodeToString(rawHmac);

        return encodeBase64String;

    }

    public static void main(String[] args) throws Exception {

        String timestamp = System.currentTimeMillis() + "";

        String accessKey = "AAAAAAAAAAAAAA";   // from Portal or SubAccount
        String secretKey = "AAAAAAAAAAAAAAAAAAAAAAAAAAAA";

        String method = "POST";
        String apiDomain = "https://sitesafer.apigw.ntruss.com";

        String apiUrl = "/sitesafer/v1/호출할 API 이름";

        String signature = makeSignature( method, apiUrl, timestamp, accessKey, secretKey );

        URL url = new URL(apiDomain + apiUrl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        con.setRequestMethod(method);

        con.setRequestProperty("x-ncp-apigw-timestamp", timestamp);
        con.setRequestProperty("x-ncp-iam-access-key", accessKey);
        con.setRequestProperty("x-ncp-apigw-signature-v2", signature);
        con.setRequestProperty("accept", "application/json");

        con.setDoOutput(true);

        String jsonInputString = "API 호출 파라미터 JSON Body";

        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        int httpResponseCode = con.getResponseCode();

        if (httpResponseCode == 200) {

            try(BufferedReader br = new BufferedReader(
                    new InputStreamReader(con.getInputStream(), "utf-8"))) {
                        StringBuilder response = new StringBuilder();
                        String responseLine = null;
                        while ((responseLine = br.readLine()) !=null) {
                            response.append(responseLine.trim());
                        }

                        System.out.println("\n");
                        System.out.print("response : \n");
                        System.out.println(response.toString());
                        System.out.println("\n");

                br.close();
            }
        }
    }

Site Saferの検査グループを作成する

Site Saferを用いてURLを検査するには、まず検査グループを作成する必要があります。 検査グループはURL及び検査周期などを管理する単位で、他のグループと名前が重複してはならず、20字以下の単語で作成してください。

① 認証値の作成

NAVERクラウドプラットフォームAPIで必要なIAM認証値を作成します。 詳細は以下の内容を参照してください。

② 認証値と共にAPIを呼び出す

検査グループの作成例


    public static String makeSignature( String method,
                                        String apiUrl,
                                        String timestamp,
                                        String accessKey,
                                        String secretKey ) throws Exception {

        String space = " ";
        String newLine = "\n";

        String message = new StringBuilder()
                .append(method)
                .append(space)
                .append(apiUrl)
                .append(newLine)
                .append(timestamp)
                .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.getEncoder().encodeToString(rawHmac);

        return encodeBase64String;

    }

    public static void main(String[] args) throws Exception {

        String timestamp = System.currentTimeMillis() + "";

        String accessKey = "AAAAAAAAAAAAAA";   // from Portal or SubAccount
        String secretKey = "AAAAAAAAAAAAAAAAAAAAAAAAAAAA";

        String method = "POST";
        String apiDomain = "https://sitesafer.apigw.ntruss.com";

        String apiUrl = "/sitesafer/v1/createUrlGroup";

        String signature = makeSignature( method, apiUrl, timestamp, accessKey, secretKey );

        URL url = new URL(apiDomain + apiUrl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        con.setRequestMethod(method);

        con.setRequestProperty("x-ncp-apigw-timestamp", timestamp);
        con.setRequestProperty("x-ncp-iam-access-key", accessKey);
        con.setRequestProperty("x-ncp-apigw-signature-v2", signature);
        con.setRequestProperty("accept", "application/json");

        con.setDoOutput(true);

        String jsonInputString = "{\"urlGroupName\" : \"새그룹이름\"}";

        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        int httpResponseCode = con.getResponseCode();

        if (httpResponseCode == 200) {

            try(BufferedReader br = new BufferedReader(
                    new InputStreamReader(con.getInputStream(), "utf-8"))) {
                        StringBuilder response = new StringBuilder();
                        String responseLine = null;
                        while ((responseLine = br.readLine()) !=null) {
                            response.append(responseLine.trim());
                        }

                        System.out.println("\n");
                        System.out.print("response : \n");
                        System.out.println(response.toString());
                        System.out.println("\n");

                br.close();
            }
        }
    }

③ 作成した検査グループIDの確認

APIの呼び出しに対する応答で作成された検査グループのIDが伝達されます。 この検査グループIDは、URL及び検査スケジュールを追加する際にパラメータとして活用できます。

Site Saferの検査グループにURLを追加する

Site Saferに作成されている検査グループに検査対象のURLを追加します。 検査グループのIDは検査グループを作成する際に伝達され、検査グループの照会APIを用いて確認できます。

① 認証値の作成

NAVERクラウドプラットフォームAPIで必要なIAM認証値を作成します。 詳細は以下の内容を参照してください。

② 認証値と共にAPIを呼び出す

検査グループにURLを追加する例

    public static String makeSignature( String method,
                                        String apiUrl,
                                        String timestamp,
                                        String accessKey,
                                        String secretKey ) throws Exception {

        String space = " ";
        String newLine = "\n";

        String message = new StringBuilder()
                .append(method)
                .append(space)
                .append(apiUrl)
                .append(newLine)
                .append(timestamp)
                .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.getEncoder().encodeToString(rawHmac);

        return encodeBase64String;

    }

    public static void main(String[] args) throws Exception {

        String timestamp = System.currentTimeMillis() + "";

        String accessKey = "AAAAAAAAAAAAAA";   // from Portal or SubAccount
        String secretKey = "AAAAAAAAAAAAAAAAAAAAAAAAAAAA";

        String method = "POST";
        String apiDomain = "https://sitesafer.apigw.ntruss.com";

        String apiUrl = "/sitesafer/v1/addInspectionUrl";

        String signature = makeSignature( method, apiUrl, timestamp, accessKey, secretKey );

        URL url = new URL(apiDomain + apiUrl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        con.setRequestMethod(method);

        con.setRequestProperty("x-ncp-apigw-timestamp", timestamp);
        con.setRequestProperty("x-ncp-iam-access-key", accessKey);
        con.setRequestProperty("x-ncp-apigw-signature-v2", signature);
        con.setRequestProperty("accept", "application/json");

        con.setDoOutput(true);

        String jsonInputString = "{\"urlGroupId\": 그룹ID, \"url\": \"http://www.naver.com\"}";

        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        int httpResponseCode = con.getResponseCode();

        if (httpResponseCode == 200) {

            try(BufferedReader br = new BufferedReader(
                    new InputStreamReader(con.getInputStream(), "utf-8"))) {
                        StringBuilder response = new StringBuilder();
                        String responseLine = null;
                        while ((responseLine = br.readLine()) !=null) {
                            response.append(responseLine.trim());
                        }

                        System.out.println("\n");
                        System.out.print("response : \n");
                        System.out.println(response.toString());
                        System.out.println("\n");

                br.close();
            }
        }
    }

③ 登録した検査URLのID確認

登録した検査URL IDは、他のAPIを呼び出す際にパラメータとして活用できます。

Site Saferの検査グループに検査スケジュールを追加する

Site Saferに作成されている検査グループに検査スケジュールを追加します。 検査グループのIDは検査グループを作成する際に伝達され、検査グループの照会APIを用いて確認できます。

① 認証値の作成

NAVERクラウドプラットフォームAPIで必要なIAM認証値を作成します。 詳細は以下の内容を参照してください。

② 認証値と共にAPIを呼び出す

検査グループにスケジュールを追加する例


    public static String makeSignature( String method,
                                        String apiUrl,
                                        String timestamp,
                                        String accessKey,
                                        String secretKey ) throws Exception {

        String space = " ";
        String newLine = "\n";

        String message = new StringBuilder()
                .append(method)
                .append(space)
                .append(apiUrl)
                .append(newLine)
                .append(timestamp)
                .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.getEncoder().encodeToString(rawHmac);

        return encodeBase64String;

    }

    public static void main(String[] args) throws Exception {

        String timestamp = System.currentTimeMillis() + "";

        String accessKey = "AAAAAAAAAAAAAA";   // from Portal or SubAccount
        String secretKey = "AAAAAAAAAAAAAAAAAAAAAAAAAAAA";

        String method = "POST";
        String apiDomain = "https://sitesafer.apigw.ntruss.com";

        String apiUrl = "/sitesafer/v1/setInspectionSchedule";

        String signature = makeSignature( method, apiUrl, timestamp, accessKey, secretKey );

        URL url = new URL(apiDomain + apiUrl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        con.setRequestMethod(method);

        con.setRequestProperty("x-ncp-apigw-timestamp", timestamp);
        con.setRequestProperty("x-ncp-iam-access-key", accessKey);
        con.setRequestProperty("x-ncp-apigw-signature-v2", signature);
        con.setRequestProperty("accept", "application/json");

        con.setDoOutput(true);

        String jsonInputString = "{\"urlGroupId\": 그룹ID, \"repeat\": \"daily\", \"inspectionHour\": 13, \"inspectionMinute\": 0, \"timeZoneId\": \"Asia/Seoul\", \"timeZoneOffset\": \"+09:00\"}";

        // repeat, timeZoneId,timeZoneOffset는 고정값입니다.
        // inspectionHour는 0 ~ 23, inspectionMinute는 0 또는 30

        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        int httpResponseCode = con.getResponseCode();

        if (httpResponseCode == 200) {

            try(BufferedReader br = new BufferedReader(
                    new InputStreamReader(con.getInputStream(), "utf-8"))) {
                        StringBuilder response = new StringBuilder();
                        String responseLine = null;
                        while ((responseLine = br.readLine()) !=null) {
                            response.append(responseLine.trim());
                        }

                        System.out.println("\n");
                        System.out.print("response : \n");
                        System.out.println(response.toString());
                        System.out.println("\n");

                br.close();
            }
        }
    }

③ 登録した検査スケジュールのID確認

登録した検査スケジュールIDは、他のAPIを呼び出す際にパラメータとして活用できます。

Site Saferの検査グループの検査結果を照会する

Site Saferが検査した結果を照会できます。

① 認証値の作成

NAVERクラウドプラットフォームAPIで必要なIAM認証値を作成します。 詳細は以下の内容を参照してください。

② 認証値と共にAPIを呼び出す

検査グループの検査結果を照会する例


    public static String makeSignature( String method,
                                        String apiUrl,
                                        String timestamp,
                                        String accessKey,
                                        String secretKey ) throws Exception {

        String space = " ";
        String newLine = "\n";

        String message = new StringBuilder()
                .append(method)
                .append(space)
                .append(apiUrl)
                .append(newLine)
                .append(timestamp)
                .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.getEncoder().encodeToString(rawHmac);

        return encodeBase64String;

    }

    public static void main(String[] args) throws Exception {

        String timestamp = System.currentTimeMillis() + "";

        String accessKey = "AAAAAAAAAAAAAA";   // from Portal or SubAccount
        String secretKey = "AAAAAAAAAAAAAAAAAAAAAAAAAAAA";

        String method = "POST";
        String apiDomain = "https://sitesafer.apigw.ntruss.com";

        String apiUrl = "/sitesafer/v1/getInspectionResult";

        String signature = makeSignature( method, apiUrl, timestamp, accessKey, secretKey );

        URL url = new URL(apiDomain + apiUrl);
        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        con.setRequestMethod(method);

        con.setRequestProperty("x-ncp-apigw-timestamp", timestamp);
        con.setRequestProperty("x-ncp-iam-access-key", accessKey);
        con.setRequestProperty("x-ncp-apigw-signature-v2", signature);
        con.setRequestProperty("accept", "application/json");

        con.setDoOutput(true);

        String jsonInputString = "{ \"urlGroupId\": 그룹 ID, \"fromDate\": 1588258801000, \"toDate\": 1590850799000, \"page\": 1, \"countPerPage\": 10 }";
        // fromDate, toDate 는 timestamp


        try(OutputStream os = con.getOutputStream()) {
            byte[] input = jsonInputString.getBytes("utf-8");
            os.write(input, 0, input.length);
        }

        int httpResponseCode = con.getResponseCode();

        if (httpResponseCode == 200) {

            try(BufferedReader br = new BufferedReader(
                    new InputStreamReader(con.getInputStream(), "utf-8"))) {
                        StringBuilder response = new StringBuilder();
                        String responseLine = null;
                        while ((responseLine = br.readLine()) !=null) {
                            response.append(responseLine.trim());
                        }

                        System.out.println("\n");
                        System.out.print("response : \n");
                        System.out.println(response.toString());
                        System.out.println("\n");

                br.close();
            }
        }
    }

参考事項

本商品はグローバルリージョンサービスでも提供されています。

関連情報

以下のガイドで関連情報を確認できます。

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...