- 印刷する
- PDF
CLOVA Chatbot とAPI Gateway の基本連携
- 印刷する
- PDF
Classic/VPC環境で利用できます。
チャットボットを外部チャネルと連携させるには、先にNAVERクラウドプラットフォームのAPI Gatewayと連携させる必要があります。チャットボットドメインとAPI Gatewayを連携させて連携情報を取得し、その連携情報を用いて外部チャネルとWebhookで連携する方式です。ドメイン別使用量に応じてAPI Gateway料金が課金されます。(API Gatewayは1,000,000件のAPI呼び出しが無料で提供されます)API Gatewayに詳しくなくても、数回のクリックだけで簡単に連携を行えます。このガイドを参考にし、連携URLとSecret Keyを大切に保管してください。
チャットボットとAPI Gatewayの連携手順
- チャットボットドメインのInvoke URLをAPI GatewayのEndpointに入力して連携
- メッセンジャーと連携/固有チャネルと連携
- 各ドメインには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の利用申込方法は以下のとおりです。
- NAVERクラウドプラットフォームコンソールでServices > API Gatewayメニューを順にクリックします。
- [商品利用の申込] ボタンをクリックします。
自動連携設定
API Gatewayの利用申込が完了すると、自動でAPI Gateway Invoke URLが作成されます。
自動連携設定を確認してInvoke URLをコピーする方法は以下のとおりです。
- API Gatewayの利用申込を参考にしてAPI Gatewayの利用申込を完了します。
- NAVERクラウドプラットフォームのコンソールでServices > CLOVA Chatbot > Domainメニューを順にクリックします。
- 希望するドメインの [ビルダーを実行する] ボタンをクリックしてチャットボットビルダーを実行します。
- チャットボットビルダーの チャットボット設定 > [メッセンジャー連携] タブで連携するメッセンジャーの [連携] ボタンをクリックします。
- 連携画面で API Gateway連携設定 項目の API Gateway Invoke URL を確認します。
- API Gateway Invoke URLを変更するには、[修正] ボタンをクリック
- ウェブページやモバイルアプリで自動作成されたAPI GatewayのInvoke URLで呼び出すことになり、ドメインごとに固有の呼び出しURLが作成される
<例> https://mmrm1gp7p7.apigw.ntruss.com/send/beta - API GatewayのInvoke URLで呼び出す際にSecret Keyを作成する
- API Gateway Invoke URLとSecret Keyをコピーして別途保管します。
手動連携設定
手動連携を設定する場合、API Gatewayの利用申込が完了したら、以下の手順に従ってAPIを作成します。
- APIの作成
- Stages APIの作成
- APIの配布
- チャットボットInvoke URLのコピー
APIの作成
API GatewayでAPIを作成する方法は以下のとおりです。
- NAVERクラウドプラットフォームのコンソールでServices > API Gateway > My Productsメニューを順にクリックします。
- [Product作成] ボタンをクリックします。
- Productの作成画面で情報を入力し、[Product作成] ボタンをクリックします。
- 作成されたProjectのAPIsをクリックします。
- APIの作成ページで [API作成] ボタンをクリックします。
- APIの作成画面で Swaggerからインポート を選択し、API名を入力します。
- Swaggerからインポートの [Swagger JSON] タブに「chatbot_messenger_swagger.json」ファイルをアップロードします。
- このファイルはチャットボットビルダーのメッセンジャー連携画面でダウンロードできる。メッセンジャー連携画面でAPI Gateway手動連携を開き、API Gateway Configurationの [ダウンロード] ボタンをクリック
- このファイルはチャットボットビルダーのメッセンジャー連携画面でダウンロードできる。メッセンジャー連携画面でAPI Gateway手動連携を開き、API Gateway Configurationの [ダウンロード] ボタンをクリック
- [API作成] ボタンをクリックします。
- Stages APIの作成を参考にしてStages APIを作成します。
Stages APIの作成
Stages APIを作成する方法は以下のとおりです。
- [Stages] タブ > [Stage作成] ボタンをクリックします。
- Stage名を入力し、Endpointドメインでカスタムを選択します。
- チャットボットでInvoke URLをコピーし、Endpointドメインフィールドに貼り付けます。
- Invoke URLをコピーする方法は自動連携設定を参照
- メッセンジャーと連携させるには、作成したStageのInvoke URLをコピーして別途保存
- [作成] ボタンをクリックします。
- APIの配布を参考にしてAPIを配布します。
APIの配布
APIを配布する方法は以下のとおりです。
- [Resources] タブをクリックして上部の [APIの配布] ボタンをクリックします。
- APIの配布画面が表示されたら、配布するステージを指定してステージの名前と説明を入力します。
- 作成されたAPIを配布するために [追加] ボタンをクリックします。
- [Stages] タブでInvoke URLをコピーして様々なチャネルと連携できる
チャットボットInvoke URLのコピー
チャットボットのAPI Gateway Invoke URLをコピーする方法は以下のとおりです。
- NAVERクラウドプラットフォームのコンソールでServices > CLOVA Chatbot > Domainメニューを順にクリックします。
- 希望するドメインの [ビルダーを実行する] ボタンをクリックしてチャットボットビルダーを実行します。
- チャットボットビルダーで チャットボットビルダー > [メッセンジャー連携] タブをクリックします。
- 連携するメッセンジャーの [連携] ボタンをクリックします。
- 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"
}
}
}