Documentation Index

Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt

Use this file to discover all available pages before exploring further.

検索のユースケース

Prev Next

Classic/VPC環境で利用できます。

検索 APIを使用して、NAVER検索のブログ検索結果を照会する実装例です。検索 APIの他の操作の実装方法もこれと類似しているため、この実装例を参照すれば、検索 APIを実装することができます。

参考
  • サンプルコードのYOUR_CLIENT_IDには、NAVERクラウドプラットフォームコンソールで発行された Client IDを、YOUR_CLIENT_SECRETには、その Client IDとマッピングする Client Secretを入力してください。
  • Client IDと Client Secretの発行方法は、NAVER API HUBの概要をご参照ください。

ブログ検索結果の照会

NAVER検索のブログ検索結果を照会する検索 APIのサンプルコードを説明します。リクエスト URI(/search/v1/blog)とクエリパラメータ(querydisplayなど)を他の検索操作の値に置き換えることで、同様の方法で他の検索結果を照会することができます。

Java

Javaベースの検索 APIのサンプルコードは次の通りです。

package com.naver.apihub.example;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;

public class ApiExampleSearchBlog {

    public static void main(String[] args) {
        String clientId = "YOUR_CLIENT_ID"; // アプリケーションの Client ID
        String clientSecret = "YOUR_CLIENT_SECRET"; // アプリケーションの Client Secret

        String text;
        try {
            text = URLEncoder.encode("コーヒー", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException("検索キーワードエンコード失敗", e);
        }

        String apiUrl = "https://naverapihub.apigw.ntruss.com/search/v1/blog?query=" + text + "&display=2";

        Map<String, String> requestHeaders = new HashMap<>();
        requestHeaders.put("X-NCP-APIGW-API-KEY-ID", clientId);
        requestHeaders.put("X-NCP-APIGW-API-KEY", clientSecret);

        String responseBody = get(apiUrl, requestHeaders);
        System.out.println(responseBody);
    }

    private static String get(String apiUrl, Map<String, String> requestHeaders) {
        HttpURLConnection con = connect(apiUrl);
        try {
            con.setRequestMethod("GET");
            for (Map.Entry<String, String> header : requestHeaders.entrySet()) {
                con.setRequestProperty(header.getKey(), header.getValue());
            }

            int responseCode = con.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) { // 正常にレスポンス
                return readBody(con.getInputStream());
            } else { // エラーを返す
                return readBody(con.getErrorStream());
            }
        } catch (IOException e) {
            throw new RuntimeException("APIリクエストおよびレスポンス失敗", e);
        } finally {
            con.disconnect();
        }
    }

    private static HttpURLConnection connect(String apiUrl) {
        try {
            URL url = new URL(apiUrl);
            return (HttpURLConnection) url.openConnection();
        } catch (MalformedURLException e) {
            throw new RuntimeException("無効な API URLです。: " + apiUrl, e);
        } catch (IOException e) {
            throw new RuntimeException("接続できません。: " + apiUrl, e);
        }
    }

    private static String readBody(InputStream body) {
        InputStreamReader streamReader = new InputStreamReader(body, StandardCharsets.UTF_8);
        try (BufferedReader lineReader = new BufferedReader(streamReader)) {
            StringBuilder responseBody = new StringBuilder();
            String line;
            while ((line = lineReader.readLine()) != null) {
                responseBody.append(line);
            }
            return responseBody.toString();
        } catch (IOException e) {
            throw new RuntimeException("APIレスポンスを読み取れません。", e);
        }
    }
}

PHP

PHPベースの検索 APIのサンプルコードは次の通りです。

<?php

$client_id = "YOUR_CLIENT_ID";
$client_secret = "YOUR_CLIENT_SECRET";

$enc_text = urlencode("コーヒー");
$url = "https://naverapihub.apigw.ntruss.com/search/v1/blog?query=" . $enc_text . "&display=2";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$headers = array();
$headers[] = "X-NCP-APIGW-API-KEY-ID: " . $client_id;
$headers[] = "X-NCP-APIGW-API-KEY: " . $client_secret;
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

$response = curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status_code == 200) {
    echo $response;
} else {
    echo "Errorの内容:" . $response;
}
?>

Node.js

Node.jsベースの検索 APIのサンプルコードは次の通りです。

const client_id = 'YOUR_CLIENT_ID';
const client_secret = 'YOUR_CLIENT_SECRET';

const api_url =
  'https://naverapihub.apigw.ntruss.com/search/v1/blog?query=' +
  encodeURIComponent('コーヒー') +
  '&display=2';

(async () => {
  const response = await fetch(api_url, {
    headers: {
      'X-NCP-APIGW-API-KEY-ID': client_id,
      'X-NCP-APIGW-API-KEY': client_secret,
    },
  });
  console.log(response.status);
  console.log(await response.text());
})();

Python

Pythonベースの検索 APIのサンプルコードは次の通りです。

import urllib.request
import urllib.parse

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"

enc_text = urllib.parse.quote("コーヒー")
url = "https://naverapihub.apigw.ntruss.com/search/v1/blog?query=" + enc_text + "&display=2"

request = urllib.request.Request(url)
request.add_header("X-NCP-APIGW-API-KEY-ID", client_id)
request.add_header("X-NCP-APIGW-API-KEY", client_secret)

response = urllib.request.urlopen(request)
rescode = response.getcode()
if rescode == 200:
    response_body = response.read()
    print(response_body.decode("utf-8"))
else:
    print("Error Code:" + str(rescode))

C#

C# ベースの検索 APIのサンプルコードは次の通りです。

using System;
using System.IO;
using System.Net;
using System.Text;

namespace NaverApiHubExample
{
    public class ApiExampleSearchBlog
    {
        static void Main(string[] args)
        {
            string clientId = "YOUR_CLIENT_ID";
            string clientSecret = "YOUR_CLIENT_SECRET";

            string query = WebUtility.UrlEncode("コーヒー");
            string url = "https://naverapihub.apigw.ntruss.com/search/v1/blog?query=" + query + "&display=2";

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Headers.Add("X-NCP-APIGW-API-KEY-ID", clientId);
            request.Headers.Add("X-NCP-APIGW-API-KEY", clientSecret);

            try
            {
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                {
                    Console.WriteLine(reader.ReadToEnd());
                }
            }
            catch (WebException e) // エラーを返す
            {
                using (StreamReader reader = new StreamReader(e.Response.GetResponseStream(), Encoding.UTF8))
                {
                    Console.WriteLine(reader.ReadToEnd());
                }
            }
        }
    }
}