Custom API - 호출 URL 생성

Custom API는 웹페이지 및 모바일 앱에 챗봇 서비스를 연동하는 방법을 제공합니다.

챗봇 서비스에서는 도메인별로 1개의 고유한 InvokeURL이 있습니다. 이 InvokeURL은 안전한 서비스를 위해 외부 서비스에 바로 공개되지 않습니다. 그리고 보안 및 서비스 처리 수준을 높이기 위해서 네이버 비즈니스 플랫폼의 API Gateway 상품에 연동을 하여 사용하도록 설계되어 있습니다.

따라서, 다음과 같은 순서로 연동이 이루어집니다.

챗봇 도메인의 InvokeURL -> API Gateway의 Endpoint로 연결 -> 메신저 연동/고유 채널 연동

챗봇 도메인의 InvokeURL을 API Gateway로 연동을 진행하기 위해서는 먼저 콘솔에 접속하여 API Gateway 상품 이용을 신청해야 합니다. API Gateway 상품 이용에 대한 자세한 내용은 "API Gateway 설명서(구, 사용자 가이드)"를 참고하시기 바랍니다.

API Gateway의 상품 이용 신청 후 다음의 단계를 따라서 API를 생성합니다.

Step 1. API Gateway Project 생성

My Products에서 Project 생성을 클릭하여 Project를 생성합니다.

chatbot-02-051.png

chatbot-02-052.png

Step 2. API 생성

chatbot-02-053.png

① 생성된 Project의 APIs를 클릭하여 API 생성 페이지로 이동합니다.

chatbot-02-054.png

API 생성을 클릭합니다.

chatbot-02-055.png

Swagger에서 가져오기를 선택하고 API 이름을 입력합나다.

chatbot-02-056.png

Swagger에서 가져오기에 chatbot_messenger_swagger.json 파일을 업로드합니다. 이 파일은 챗봇 빌더에서 다운로드할 수 있습니다.

chatbot_messenger_swagger.json 파일의 내용은 다음과 같습니다.

{
  "swagger" : "2.0",
  "info" : {
    "description" : ""
  },
  "host" : "",
  "basePath" : "/",
  "schemes" : [ "https" ],
  "security" : [ {
    "x-ncp-apigw-api-key" : [ ]
  } ],
  "paths" : {
    "/" : {
      "get" : {
        "tags" : [ "messenger" ],
        "description" : "",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : ""
          }
        },
        "x-ncp-apigw-use-body-when-formdata" : false,
        "x-ncp-apigateway-filters" : {
          "valid" : {
            "type" : "NONE"
          },
          "apiKey" : {
            "required" : false
          },
          "auth" : {
            "platform" : "NONE"
          }
        },
        "x-ncp-apigateway-endpoint" : {
          "HTTP" : {
            "method" : "GET",
            "url" : "/facebook/verify",
            "stream" : false
          }
        }
      },
      "post" : {
        "tags" : [ "messenger" ],
        "description" : "",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "msg",
          "description" : "",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/Empty"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : ""
          },
          "400" : {
            "description" : ""
          },
          "401" : {
            "description" : ""
          },
          "403" : {
            "description" : ""
          },
          "500" : {
            "description" : ""
          }
        },
        "x-ncp-apigw-use-body-when-formdata" : false,
        "x-ncp-apigateway-filters" : {
          "valid" : {
            "type" : "NONE"
          },
          "apiKey" : {
            "required" : false
          },
          "auth" : {
            "platform" : "NONE"
          }
        },
        "x-ncp-apigateway-endpoint" : {
          "HTTP" : {
            "method" : "POST",
            "url" : "/message",
            "stream" : false
          }
        }
      }
    },
    "/keyboard" : {
      "get" : {
        "tags" : [ "messenger" ],
        "description" : "",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : ""
          }
        },
        "x-ncp-apigw-use-body-when-formdata" : false,
        "x-ncp-apigateway-filters" : {
          "valid" : {
            "type" : "NONE"
          },
          "apiKey" : {
            "required" : false
          },
          "auth" : {
            "platform" : "NONE"
          }
        },
        "x-ncp-apigateway-endpoint" : {
          "HTTP" : {
            "method" : "GET",
            "url" : "/keyboard",
            "stream" : false
          }
        }
      },
      "post" : {
        "tags" : [ "messenger" ],
        "description" : "",
        "produces" : [ "application/json" ],
        "parameters" : [ ],
        "responses" : {
          "200" : {
            "description" : ""
          }
        },
        "x-ncp-apigw-use-body-when-formdata" : false,
        "x-ncp-apigateway-filters" : {
          "valid" : {
            "type" : "NONE"
          },
          "apiKey" : {
            "required" : false
          },
          "auth" : {
            "platform" : "NONE"
          }
        },
        "x-ncp-apigateway-endpoint" : {
          "HTTP" : {
            "method" : "POST",
            "url" : "/keyboard",
            "stream" : false
          }
        }
      }
    },
    "/message" : {
      "post" : {
        "tags" : [ "messenger" ],
        "description" : "",
        "consumes" : [ "application/json" ],
        "produces" : [ "application/json" ],
        "parameters" : [ {
          "in" : "body",
          "name" : "msg",
          "description" : "",
          "required" : true,
          "schema" : {
            "$ref" : "#/definitions/Empty"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : ""
          },
          "400" : {
            "description" : ""
          },
          "401" : {
            "description" : ""
          },
          "403" : {
            "description" : ""
          },
          "500" : {
            "description" : ""
          }
        },
        "x-ncp-apigw-use-body-when-formdata" : false,
        "x-ncp-apigateway-filters" : {
          "valid" : {
            "type" : "NONE"
          },
          "apiKey" : {
            "required" : false
          },
          "auth" : {
            "platform" : "NONE"
          }
        },
        "x-ncp-apigateway-endpoint" : {
          "HTTP" : {
            "method" : "POST",
            "url" : "/message",
            "stream" : false
          }
        }
      }
    }
  },
  "securityDefinitions" : {
    "x-ncp-apigw-api-key" : {
      "type" : "apiKey",
      "name" : "x-ncp-apigw-api-key",
      "in" : "header"
    }
  },
  "definitions" : {
    "Empty" : {
      "type" : "object",
      "x-ncp-model-descption" : "Default empty model"
    }
  }
}

chatbot-02-057.png

확인버튼을 눌러 API생성을 완료합니다.

Step 3. Stages API 생성

chatbot-02-058.png

Stages 탭을 클릭하여 Stage 생성을 클릭합니다.

chatbot-02-059.png

Stages 탭에서 Stage 이름을 입력합니다.

Step 4. 챗봇 Invoke URL 복사

chatbot-02-056.png

① 챗봇 설정 화면에서 메신저 연동 탭을 선택합니다.

Invoke URL 항목의 주소 복사를 클릭하여 Invoke URL을 복사합니다.

Step 5. 챗봇 Invoke URL 등록

복사한 챗봇의 Invoke URL을 API Gateway의 Stage Endpoint 도메인에 붙여넣고 생성을 클릭합니다.

chatbot-02-059.png

chatbot-02-060.png

메신저를 연동하려면 생성한 Stage의 Invoke URL을 복사하여 보관합니다.

Step 6. API 배포

Resource 탭에서 API 배포를 클릭하여 생성된 API를 배포합니다.

chatbot-02-061.png

chatbot-02-062.png

chatbot-02-063.png

Stage 탭에서 Invoke URL을 복사해서 다양한 채널과 연동해 보세요.

연관 정보 바로가기

도메인 생성, 대화 목록과 컴포넌트 관리 및 통계 관리와 관련하여 아래 사용 가이드를 참고하실 수 있습니다.

""에 대한 건이 검색되었습니다.

    ""에 대한 검색 결과가 없습니다.

    처리중...