CLOVA Chatbot とAPI Gateway の基本連携
    • PDF

    CLOVA Chatbot とAPI Gateway の基本連携

    • PDF

    Article Summary

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

    チャットボットを外部チャネルと連携させるには、先にNAVERクラウドプラットフォームのAPI Gatewayと連携させる必要があります。チャットボットドメインとAPI Gatewayを連携させて連携情報を取得し、その連携情報を用いて外部チャネルとWebhookで連携する方式です。ドメイン別使用量に応じてAPI Gateway料金が課金されます。(API Gatewayは1,000,000件のAPI呼び出しが無料で提供されます)API Gatewayに詳しくなくても、数回のクリックだけで簡単に連携を行えます。このガイドを参考にし、連携URLとSecret Keyを大切に保管してください。

    チャットボットとAPI Gatewayの連携手順

    1. チャットボットドメインのInvoke URLをAPI GatewayのEndpointに入力して連携
    2. メッセンジャーと連携/固有チャネルと連携
    参考
    • 各ドメインには1つの固有のInvoke URLがあります。Invoke URLは、安全なサービスのために外部サービスに直接公開されていません。NAVERクラウドプラットフォームのAPI Gatewayと連携して使用するように設計されています。
    • チャットボットとAPI Gatewayが連携されていないと、チャットボットと外部チャネルが正常に連携されません。
    • API Gatewayとの連携方法には、自動連携と手動連携があります。使用方法が簡単な自動連携を利用することをお勧めします。

    API Gatewayの利用申込

    ドメインのInvoke URLをAPI Gatewayと連携させるには、先にAPI Gatewayサービスの利用申込が完了している必要があります。API Gatewayの利用についての詳しい説明は、API Gatewayご利用ガイドを参照してください。
    API Gatewayの利用申込方法は以下のとおりです。

    1. NAVERクラウドプラットフォームコンソールでServices > API Gatewayメニューを順にクリックします。
    2. [商品利用の申込] ボタンをクリックします。

    自動連携設定

    API Gatewayの利用申込が完了すると、自動でAPI Gateway Invoke URLが作成されます。
    自動連携設定を確認してInvoke URLをコピーする方法は以下のとおりです。

    1. API Gatewayの利用申込を参考にしてAPI Gatewayの利用申込を完了します。
    2. NAVERクラウドプラットフォームのコンソールでServices > CLOVA Chatbot > Domainメニューを順にクリックします。
    3. 希望するドメインの [ビルダーを実行する] ボタンをクリックしてチャットボットビルダーを実行します。
    4. チャットボットビルダーの チャットボット設定 > [メッセンジャー連携] タブで連携するメッセンジャーの [連携] ボタンをクリックします。
    5. 連携画面で API Gateway連携設定 項目の API Gateway Invoke URL を確認します。
      chatbot-chatbot-5-1_auto_ja.png
      • API Gateway Invoke URLを変更するには、[修正] ボタンをクリック
      • ウェブページやモバイルアプリで自動作成されたAPI GatewayのInvoke URLで呼び出すことになり、ドメインごとに固有の呼び出しURLが作成される
        <例> https://mmrm1gp7p7.apigw.ntruss.com/send/beta
      • API GatewayのInvoke URLで呼び出す際にSecret Keyを作成する
    6. API Gateway Invoke URLとSecret Keyをコピーして別途保管します。

    手動連携設定

    手動連携を設定する場合、API Gatewayの利用申込が完了したら、以下の手順に従ってAPIを作成します。

    1. APIの作成
    2. Stages APIの作成
    3. APIの配布
    4. チャットボットInvoke URLのコピー

    APIの作成

    API GatewayでAPIを作成する方法は以下のとおりです。

    1. NAVERクラウドプラットフォームのコンソールでServices > API Gateway > My Productsメニューを順にクリックします。
    2. [Product作成] ボタンをクリックします。
    3. Productの作成画面で情報を入力し、[Product作成] ボタンをクリックします。
    4. 作成されたProjectのAPIsをクリックします。
      chatbot-chatbot-5-1_api01_ja
    5. APIの作成ページで [API作成] ボタンをクリックします。
    6. APIの作成画面で Swaggerからインポート を選択し、API名を入力します。
    7. Swaggerからインポートの [Swagger JSON] タブに「chatbot_messenger_swagger.json」ファイルをアップロードします。
      chatbot-chatbot-5-1_api02_ja
      • このファイルはチャットボットビルダーのメッセンジャー連携画面でダウンロードできる。メッセンジャー連携画面でAPI Gateway手動連携を開き、API Gateway Configurationの [ダウンロード] ボタンをクリック
        chatbot-chatbot-5-1_api03_ja
    8. [API作成] ボタンをクリックします。
    9. Stages APIの作成を参考にしてStages APIを作成します。

    Stages APIの作成

    Stages APIを作成する方法は以下のとおりです。

    1. [Stages] タブ > [Stage作成] ボタンをクリックします。
      chatbot-chatbot-5-1_stagesapi01_ja
    2. Stage名を入力し、Endpointドメインでカスタムを選択します。
    3. チャットボットでInvoke URLをコピーし、Endpointドメインフィールドに貼り付けます。
      chatbot-chatbot-5-1_stagesapi03_ja
      • Invoke URLをコピーする方法は自動連携設定を参照
      • メッセンジャーと連携させるには、作成したStageのInvoke URLをコピーして別途保存
    4. [作成] ボタンをクリックします。
    5. APIの配布を参考にしてAPIを配布します。

    APIの配布

    APIを配布する方法は以下のとおりです。

    1. [Resources] タブをクリックして上部の [APIの配布] ボタンをクリックします。
      chatbot-chatbot-5-1_apirelease01_ja
    2. APIの配布画面が表示されたら、配布するステージを指定してステージの名前と説明を入力します。
    3. 作成されたAPIを配布するために [追加] ボタンをクリックします。
      • [Stages] タブでInvoke URLをコピーして様々なチャネルと連携できる

    チャットボットInvoke URLのコピー

    チャットボットのAPI Gateway Invoke URLをコピーする方法は以下のとおりです。

    1. NAVERクラウドプラットフォームのコンソールでServices > CLOVA Chatbot > Domainメニューを順にクリックします。
    2. 希望するドメインの [ビルダーを実行する] ボタンをクリックしてチャットボットビルダーを実行します。
    3. チャットボットビルダーで チャットボットビルダー > [メッセンジャー連携] タブをクリックします。
    4. 連携するメッセンジャーの [連携] ボタンをクリックします。
    5. API Gateway Invoke URLの [アドレスをコピー] ボタンをクリックします。

    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"
        }
      }
    }
    

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

    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.