メインコンテンツまでスキップ

外部データを組み込んだ回答を作成したい

はじめに

本書では、外部のデータを組み込んだ回答内容を作成する方法について説明します。

以下の手順を実施することで、チャットボットで外部のAPIを利用することができます。

例1として、https://api.openweathermap.org/の公開APIを利用して、郵便番号をキーワードに所在地を回答として取得する方法をご紹介します。

  • 例1.外部連携の登録
  • 例1.外部連携APIを利用する回答クラスの登録

例2としてkintoneを利用した回答の作成方法を紹介します。

  • 例2.kintoneのデータを取得する外部連携の登録・設定
  • 例2.kintoneのデータを利用した回答を作成します

操作説明

例1.外部連携の登録

まずはじめに、外部連携APIを登録します。

  • 管理画面を開きます
  • 左のメニューから「外部連携」をクリックします。
  • 登録ボタンをクリックします。

以下を設定し、登録ボタンをクリックします。

  • API名入力欄に登録するAPIを識別する名称を入力します。

  • HTTPメソッド選択欄で登録するAPIのHTTPメソッドを選択します。

  • URI入力欄に利用するAPIのURLを入力します。

  • プロキシ欄はプロキシ設定がある場合のみ表示されます。(通常は使用しません。)

※条件設定はワークスペースや回答クラスごとに外部連携APIの利用を制限する場合にのみ設定します。

  • パラメータ入力エリア(PARAMS・AUTHORIZATION等)にAPIの利用に必要なパラメータを設定します。
    (記載の例ではPARAMSのKEYにappidとzipを設定し、appidのVALUEにはOpenWeatherMapのサイトにサインインすることで取得できるAPI keyを、zipのVALUEには所在地を取得したい郵便番号を設定します。)

  • 登録ボタンをクリックし外部連携一覧の画面に登録した外部連携APIが表示されていることを確認します。

例1.外部連携APIを利用する回答クラスの登録

次に回答クラスと登録した外部連携APIを紐づけます。

外部連携APIを利用する対象のワークスペースと、回答クラス、および質問文を登録します。
※特別な操作は必要ないため手順は省略します。
(記載の例では「TEST_001」という回答クラスを作成し「郵便番号「T100-0001」の所在地はどこですか?」という質問文を用意します。)

  • 左のメニューから「ワークスペース」をクリックします。
  • ワークスペース一覧で外部連携APIを登録したいワークスペースをクリックします。
  • 「回答」タブをクリックします。

  • 外部連携APIを埋め込んだ回答文を登録します。
    回答文中の外部連携APIの情報を組み込みたい部分に 以下のタグを適宜修正し記述します。
<api name='{外部連携APIの登録名}'/>

※結果取得の表記方法については連携先の仕様を確認の上、設定してください。

(記載の例では「回答文入力欄には「〒100-0001」は、<api name='weather_test_zipcode' value='name'/>になります。」と入力します。)

  • 登録ボタンをクリックし回答文を登録します。

以上の手順で、外部データを取り込んだ回答を作成することができます。

なお、例として登録した郵便番号から所在地を取得する回答の実際の表示は以下のようになります。

※郵便番号〒100-0001の所在地、千代田を取得できている。

例2.kintoneのデータを取得する外部連携の登録・設定

  • 管理画面を開きます。
  • 左のメニューから「外部連携」をクリックします。
  • 登録ボタンをクリックします。

以下を設定し、登録ボタンを押下します。

  • API名入力欄に登録するAPIを識別する名称を入力します。
  • HTTPメソッド選択欄で登録するAPIのHTTPメソッドを選択します。
  • URI入力欄に利用するkintoneアプリのURLを入力します。
  • プロキシ欄はプロキシ設定がある場合のみ表示されます。(通常は使用しません。)
  • PARAMSタブの設定を行います。
  • HEADERSタブの設定を行います。
  • EMBEDDED ITEMSタブの設定を行います。

まず初めにPARAMSタブの設定を行います。

記載の例ではPARAMSタブのKEYにそれぞれ
「app」:VALUEに「kintoneのアプリ番号」
「query」:VALUEに「name like "{{askText}}" (kintone上のフィールドnameにチャットから入力した文字が含まれるという指定)」
「fields」:VALUEに「取得したいkintone上のフィールド名、例ではname」
を設定します。

次にHEADERSタブの設定を行います。ここではkintoneのAPIにアクセスするAPIトークンを入力する必要がありますので、kintoneの設定でAPIトークンを生成・取得する必要があります。

kintone側で使用するアプリの設定画面を開き、APIトークンの生成を行います。

適切な権限を設定後にAPIの生成行い、HEADERSタブのKEYに
「X-Cybozu-Authorization」:VALUEに「上記で取得したAPIトークン」を設定します。

続いてEMBEDDED ITEMSタブの設定をします。(※使用するのはaskText(チャットで入力した文字)のみです。)

VARNAMEとKEYに「askText」と設定し、SOURCEにはSESSIONを設定します。

更新、または登録ボタンをクリックして情報を登録し、外部連携一覧の画面に登録した外部連携APIが表示されていることを確認してください。

例2.kintoneのデータを利用した回答を作成します

次に回答文の中に登録した外部連携APIを組み込みます。
(記載の例では「TEST_002」という回答クラスを作成しています。)

回答文の適切な場所に外部連携を利用するタグを挿入します。

<api name='kintone_test' value='records.0.name.value' />

nameには外部連携に設定した名前を指定してください。valueには参照する値を指定しますが、kintoneのAPIから返されるjsonのフォーマットを確認する必要があります。詳しくは利用するkintoneのAPIリファレンスを参照してください。

  • 登録ボタンをクリックし回答文を登録します。

以上の手順で、kintoneのデータを取得した回答を作成することができます。
なお記載の例としては、kintoneのフィールドnameに鈴木が含まれているレコードを抽出し、nameの値をすべて出力しています。

その他留意点(Tips)

前提

この機能の設定はREST APIの基本的な知識を保有している方が行う事を想定してます。内容が不明である場合は販売担当の技術者にサポートを依頼するようお願いいたします。
どのような形や変数名で結果が返ってくるのかがAPIにより異なりますので、呼び出す外部API側の仕様ご確認ください。