shorturl
    • PDF

    shorturl

    • PDF

    Article Summary

    概要

    入力されたURLを me2.doの形式で短いURLに変換するREST APIです。

    リクエスト

    • POST FORM方式
    curl -i -X POST \
       -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
       -H "X-NCP-APIGW-API-KEY-ID: {アプリケーションを登録する時に発行されたclient id 値}" \
       -H "X-NCP-APIGW-API-KEY: {アプリケーションを登録する時に発行されたclient secret 値}" \
       -d "url={短縮しようとする原本URL}" \
      "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl"
    
    • POST JSON方式
    curl -i -X POST \
       -H "X-NCP-APIGW-API-KEY-ID:{アプリケーションを登録する時に発行されたclient id 値}" \
       -H "X-NCP-APIGW-API-KEY:{アプリケーションを登録する時に発行されたclient secret 値}" \
       -H "Content-Type:application/json" \
       -d '{"url": "{短縮しようとする原本URL}"}' \
     'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl'
    
    • GET方式
    curl -i -X GET \
       -H "X-NCP-APIGW-API-KEY-ID:{アプリケーションを登録する時に発行されたclient id 値}" \
       -H "X-NCP-APIGW-API-KEY:{アプリケーションを登録する時に発行されたclient secret 値}" \
     'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl?url={短縮しようとする原本URL}'
    

    リクエストパラメータ

    GET方式で呼び出す場合、パラメータで送信できます。

    リクエスト変数名タイプ必須基本値説明
    urlstringY-短縮しようとする原本URL

    リクエストヘッダ

    ヘッダ名説明
    X-NCP-APIGW-API-KEY-IDアプリケーションを登録する時に発行されたClient ID
    X-NCP-APIGW-API-KEY-ID:{Client ID}
    X-NCP-APIGW-API-KEYアプリケーションを登録する時に発行されたClient Secret
    X-NCP-APIGW-API-KEY:{Client Secret}

    リクエストボディ

    POST方式で呼び出す場合、FORM、JSON方式で送信できます。

    リクエスト変数名タイプ必須基本値説明
    urlstringY-短縮しようとする原本URL

    レスポンス

    レスポンスボディ

    フィールドタイプ説明
    hashstring短縮URL Hash情報
    urlstring短縮されたURL
    orgUrlstring原本URL

    例示

    リクエスト例示

    curl "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl" \
       -d "url=http://d2.naver.com/helloworld/4874130" \
       -H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
       -H "X-NCP-APIGW-API-KEY-ID: {アプリケーションを登録する時に発行されたclient id 値}" \
       -H "X-NCP-APIGW-API-KEY: {アプリケーションを登録する時に発行されたclient secret 値}" -v
    

    レスポンス例示

    {
        "message":"ok",
        "result": {
            "hash":"GyvykVAu",
            "url":"https://me2.do/GyvykVAu",
            "orgUrl":"http://d2.naver.com/helloworld/4874130"
        }
        ,"code":"200"
    }
    

    API例題

    // nShortURL API例題
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.net.URLEncoder;
    
    public class APIExamURL {
    
        public static void main(String[] args) {
            String clientId = "YOUR_CLIENT_ID";//アプリケーションclient id値";
            String clientSecret = "YOUR_CLIENT_SECRET";//アプリケーションclient secret 値";
            try {
                String text = "https://developers.naver.com/notice";
                String apiURL = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
                URL url = new URL(apiURL);
                HttpURLConnection con = (HttpURLConnection)url.openConnection();
                con.setRequestMethod("POST");
                con.setRequestProperty("Content-Type", "application/json");
                con.setRequestProperty("X-NCP-APIGW-API-KEY-ID", clientId);
                con.setRequestProperty("X-NCP-APIGW-API-KEY", clientSecret);
                // post request
                JSONObject json = new JSONObject();
                json.put("url", text);
                String postParams = json.toString();
                DataOutputStream wr = new DataOutputStream(con.getOutputStream());
                wr.writeBytes(postParams);
                wr.flush();
                wr.close();
                int responseCode = con.getResponseCode();
                BufferedReader br;
                if(responseCode==200) { // 正常呼び出し
                    br = new BufferedReader(new InputStreamReader(con.getInputStream()));
                } else {  // エラー発生
                    br = new BufferedReader(new InputStreamReader(con.getErrorStream()));
                }
                String inputLine;
                StringBuffer response = new StringBuffer();
                while ((inputLine = br.readLine()) != null) {
                    response.append(inputLine);
                }
                br.close();
                System.out.println(response.toString());
            } catch (Exception e) {
                System.out.println(e);
            }
        }
    }
    
    // Naver短縮URL Open API例題
    <?php
      $client_id = "YOUR_CLIENT_ID";
      $client_secret = "YOUR_CLIENT_SECRET";
      $encText = urlencode("https://developers.naver.com/docs/utils/shortenurl");
      $postvars = "url=".$encText;
      $url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
      $is_post = true;
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_POST, $is_post);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      curl_setopt($ch,CURLOPT_POSTFIELDS, $postvars);
      $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);
      echo "status_code:".$status_code."<br />";
      curl_close ($ch);
      if($status_code == 200) {
        echo $response;
      } else {
        echo "Error内容:".$response;
      }
    ?>
    
    // nShortURL API例題
    var express = require('express');
    var app = express();
    var client_id = 'YOUR_CLIENT_ID';
    var client_secret = 'YOUR_CLIENT_SECRET';
    var query = encodeURI('https://developers.naver.com/docs/utils/shortenurl');
    app.post('/url', function(req, res) {
      var api_url = 'https://naveropenapi.apigw.ntruss.com/util/v1/shorturl';
      var request = require('request');
      var options = {
        url: api_url,
        form: { url: query },
        headers: { 'X-NCP-APIGW-API-KEY-ID': client_id, 'X-NCP-APIGW-API-KEY': client_secret },
      };
      request.get(options, function(error, response, body) {
        if (!error && response.statusCode == 200) {
          res.writeHead(200, { 'Content-Type': 'text/json;charset=utf-8' });
          res.end(body);
        } else {
          res.status(response.statusCode).end();
          console.log('error = ' + response.statusCode);
        }
      });
    });
    app.listen(3000, function() {
      console.log('http://127.0.0.1:3000/url app listening on port 3000!');
    });
    
    # Naver短縮URL Open API例題
    import os
    import sys
    import urllib.request
    client_id = "YOUR_CLIENT_ID"
    client_secret = "YOUR_CLIENT_SECRET"
    encText = urllib.parse.quote("https://developers.naver.com/docs/utils/shortenurl")
    data = "url=" + encText
    url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl"
    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, data=data.encode("utf-8"))
    rescode = response.getcode()
    if(rescode==200):
        response_body = response.read()
        print(response_body.decode('utf-8'))
    else:
        print("Error Code:" + rescode)
    
    using System;
    using System.Net;
    using System.Text;
    using System.IO;
    
    namespace NaverAPI_Guide
    {
        public class APIExamURL
        {
            static void Main(string[] args)
            {
                string url = "https://naveropenapi.apigw.ntruss.com/util/v1/shorturl";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Headers.Add("X-NCP-APIGW-API-KEY-ID", "YOUR_CLIENT_ID"); // Client ID
                request.Headers.Add("X-NCP-APIGW-API-KEY", "YOUR_CLIENT_SECRET"); // Client Secret
                request.Method = "POST";
                string query = "https://developers.naver.com/docs/utils/shortenurl"; // 短縮するURL対象
                byte[] byteDataParams = Encoding.UTF8.GetBytes("url=" + query);
                request.ContentType = "application/x-www-form-urlencoded";
                request.ContentLength = byteDataParams.Length;
                Stream st = request.GetRequestStream();
                st.Write(byteDataParams, 0, byteDataParams.Length);
                st.Close();
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream stream = response.GetResponseStream();
                StreamReader reader = new StreamReader(stream, Encoding.UTF8);
                string text = reader.ReadToEnd();
                stream.Close();
                response.Close();
                reader.Close();
                Console.WriteLine(text);
            }
        }
    }
    

    エラーコード

    HTTPコードエラーコードエラーメッセージ対処方案
    4031403Invalid URL(リクエストURLエラー)
    4032403Forbidden URL(APIの使用権限エラー)
    4033403Unavailable URL(存在していないか、安全でないURL)
    5001500Internal server error(内部サーバエラー)お客様問い合わせまでお問い合わせください。

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

    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.