情報タスク は、チャットボットがユーザーのためにデータを調べたり、レポートを引き出して使いやすい結果に戻してきたり、拡張されたデータの結果へのリンクを返したりするために使用されます。ユーザーは、配信される情報の具体的なパラメータやフィルター(結果の量など)を特定することができ、ボットは、受信者が簡単にスキャン、処理、再利用できる方法で情報を配信します。例として、エンドユーザーに検索結果、およびその結果を詳細に見るためのリンクを提供するショッピングボットがあるとしましょう。それには、それらのアイテムをショッピングカートのリストに追加する手段も付いています。検索結果を詳細に表示するためのリンクで、検索結果を表示するための情報タスクを定義することができ、さらに、リンクをクリックすると、エンドユーザーがショッピングカートに追加できるアイテムを示すWebページを表示することができます。次の図では、 リレーボットにはいくつかのタスクが定義されており、そのうちの1つは、検索結果にアイテムの表示リンクを表示するのに使用される情報タスクです。 ユーザーがアイテムの表示をクリックすると、新しいタブに情報レポートが表示されます。それには、以下の図のようにショッピングカートに追加できる製品の詳細情報と選択可能な結果が記載されています。
ボットビルダーでは、ボットレスポンスに関して以下のレポートタイプを定義できます。
-
- テーブルレポート – レポートは、可変幅の列があるテーブル形式で表示されます。
- 固定列のテーブルレポート – レポートは固定幅の列があるテーブル形式で表示されます。
- カードレイアウトレポート – レポートは、カードのリストとして、あるいは画像を含む可変フォーマットデータがあるテキストボックスとして表示されます。
- アクション付きカードレイアウトレポート – レポートは、カードのリスト、もしくは画像を含む可変フォーマット化データが入ったテキストボックスとして表示されます。さらに、カートに追加などのアクションタスクをレポートに関連付けるオプションも付いています。
- レポート別にグループ化されたカードレイアウト – レポートは、カードのリスト、もしくは日付、サイズ、位置などのパラメータキーでグループ化できる可変フォーマット化データが入ったテキストボックスとして表示されます。カードレポートには、画像のほかに、「カートに追加」などのアクションタスクをレポートに関連付けるオプションが含まれています。
- アクション付きショッピングカートレイアウトレポート – レポートは、ショッピングカートのリスト、または画像を含む可変フォーマット化データが入ったテキストボックスとして表示され、さらに カートに追加などのアクションタスクをレポートに関連付けるオプションも付いています。
- 天気情報レポート – このレポートは、日付、曜日、予報期間ごとに天気情報をシリアルデータ文字列で表示するために特別設計されています。
その他の例:
- 利用明細を提示する
- ロイヤリティポイントを表示する
- 人の情報を検索する
- 未払いアイテムの概要表示を手に入れる
- インベントリのリストを引き出す
- チームステータス情報を取得する
- 重要情報を更新する
処理
情報タスクの定義を完了するために必要な手順は、4つの基本ステップで構成されています。
ステップ 1:一般設定
第1ステップは、タスク名、接続モード、説明、さらに、NLP除外ワード、検索キーワード、エラーメッセージ、タスク確認メッセージ、マッピング制限などその他の高度な設定、およびKore.aiボットストアの設定など、タスクをエンドユーザーに表示する方法を定義することです。以下の手順で、情報タスクの一般的な設定を行います。
- 情報タスクを作成したいボットを開きます。
- ボットのサイドナビゲーションパネルをポイントし、ボットタスクをクリックします。
- ボットタスクのページで、情報タスクタブをポイントし、[プラス]アイコンをクリックします。
- タスクの名前を入力します。この名前は表示名を兼ねています。ボットストアでは、タスクの表示名を使用しています。必要に応じて表示名を変更することができます。情報タスクの作成ダイアログが開きます。
- タスクに必要な以下の情報を入力し、作成して続行をクリックします。
フィールド名 説明 タスク名 アプリケーションとエンドユーザーチャネルのあらゆる場所に表示されるタスクの名前。 表示名 Kore.aiボットマーケットプレースで表示されるタスクの名前。変更しない限り、タスク名と同じになります。 接続タイプ 情報タスクの接続タイプは常にWebサービスです。Webサービスは、エンドユーザーの資格情報を使用してポーリングするときに、Kore.aiにデータを送信します。この設定は、情報タスクのための読み取り専用です。 接続モード これは、Webサービスとしてのタスクの通信プロトコル接続タイプです。Webサービスは、エンドユーザーアカウントのログイン資格情報を使用してKore.aiからポーリングされると、Kore.aiにデータを送信します。 - REST – タスクはプロトコルに依存しないREST API接続を使用してメッセージを交換し、WebサービスのCRUD操作を処理します。
- SOAP – タスクは、メッセージ交換のためにXMLプロトコルに基づいてSOAP API接続を使用します。
詳細説明 情報タスクの長文の説明文です。
高度な設定
タスクの詳細設定を行うには、セクションを展開して関連する詳細を入力します。
フィールド名 | 説明 |
---|---|
確認メッセージを無効にする | NLP の使用時にタスクの実行の確認を無効にするには、はいを選択します。 |
マッピング済みのみのアクションタスク | フロー内の他のタスクからマッピングされた場合、このアクションタスクをエンドユーザーにのみ表示するように選択します。いいえを選択した場合、エンドユーザーが情報タスクを検索したときに、その情報タスクは表示されません。 |
検索キーワード | エンドユーザーがこのタスクをKore.aiボットストアで検索するために使用できる1つ以上の検索ワードを指定します。 |
タスクのデモ リンク | www.youtube.com リンクを入力すると、ボットストアでタスク名の横に[デモ]アイコンが表示されます。以下の図は、タスクデモリンクによって定義されたボットタスクを示しています。 |
WSDLファイルへアクセスするためには、認証が必要です(SOAPリクエストにのみ適用)。 | SOAPリクエストのWSDLにアクセスするためにWebサービスの認証が必要な場合は、はいを選択して認証を使用します。はいを選択すると、APIリクエストに定義された認証 がWSDLへのアクセスに使用されます。この設定は、タスクの接続モードがSOAPに設定されている場合にのみ有効です。 |
オプションフィールドの取得 | はいを選択すると、エンドユーザーは利用可能なオプションパラメータのうち少なくとも1つを選択して入力する必要があります。 |
除外ワード | タスク名に除外するワードを1つ以上入力し、各ワードの後でEnterキーを押します。除外するワードのリストは、ユーザーの入力を解釈する前にボットプラットフォームによって処理されます。つまり、多くのタスクに当てはまるけれど、どのタスクかを特定するのには役立たないワードをフィルタリングすることによって、ボットはユーザー入力に素早く反応し、正しいタスクを提供することができるのです。例として、ユーザーが「今日の天気予報を手に入れたい」と入力したとします。ボットプラットフォームのインタプリターは、正しいアクションタスクをユーザーに返すために、天気、予報、今日という3つのワードを認識するだけでいいのです。残りのワードは除外していいのです。Kore.aiボットのインタプリターには、一般的な除外ワードがすでに定義されているので、私、あなた、欲しい、手に入れるなどの言葉を除外ワードとして定義する必要はありません。もし、たとえばあなたの会社名のように、あなたのボットが多くのあるいはすべてのタスクに同じワードを使っている場合、その会社名を除外するワードとして追加することができます。 |
エラー メッセージ | ボット用のカスタムHTTPステータスコードおよびエラーメッセージを編集または追加します。詳細は、エラーメッセージのカスタマイズをご覧ください。 |
ステップ 2:認証の設定
タスクに必要な場合、基本認証、OAuth、API Keyなどの認証を定義します。ボットのアクションタスクによっては、アクションタスクを開始するために、ユーザーに対する認証方法を定義する必要があることもあります。例として、Twitter には、Webサービスを利用するアクションタスクがありますが、その際、エンドユーザーは、通常、ログインユーザー名とパスワードで認証を行い、Kore.aiはアクションタスクを実行する前にエンドユーザーのアカウントにアクセスしてデータを取得できるようになっています。認証プロファイルを定義するか、あるいは既存のものを利用することができます。すべての認証プロファイルは、タスクレベルで作成したものであれ、ボットレベルで作成したものであれ、すべてのボットタスクで使用することができます。
- タスクの認証の定義を始めるには、APIリクエストタブから 認証セクションの展開 アイコンをクリックします。
- このタスクを事前に認証を定義していた場合は、認証プロバイダドロップダウンリストで認証を選択することができます。
- タスクが認証を必要としない場合は、認証プロバイダとしてなしを選択することができます。
- 新しい認証プロバイダを定義するには、新規作成をクリックして、新しい認証メカニズムダイアログを表示します。
- ダイアログで、認証タイプのドロップダウンリストから、ボットが使用する認証タイプを選択します。認証タイプは次のいずれかを選択することができます。
- 基本認証 – ユーザー名とパスワードの情報を収集するための標準プロトコル。Kore.aiは、エンドユーザーの情報を保護するために、基本認証と組み合わせてSSL暗号を使用しています。設定の詳細は、以下のリンクをクリックします。以下の図は、タスクで基本認証を有効にするために定義する必要がある基本認証 フィールドの例です。基本認証を定義するには、認証タイプフィールドで基本認証 を選択します。次に、ボットビルダーのユーザーインターフェースに表示される認証の名前を特定します。
テナントの定義
必要に応じて、Webアプリケーションやユーザーインターフェースの基本URLにテナント名を使用する場合は、サブドメインセクションではいを選択します。例として、koreは、www.kore.someCompany.comとしてテナントを使用したWebサービスのテナント組織です。下記の設定の例では、テナンシーURLには{tenant}組織のプレースホルダーが含まれます。
[フォーム]フィールドの追加
デフォルトのユーザー名とパスワードのフィールドがニーズを満たしていない場合、認証フォームのフィールドを追加することで、エンドユーザーに表示される新しいフィールドを追加することができます。認証フォームにフィールドを追加するには + フォームフィールドの追加をクリックします。以下の図は、認証ダイアログへの[パスワード]フィールドを追加するための定義の一例です。 以下のテーブルでは、認証IDPフォームのフィールドを定義するために使用されるフィールドについて説明しています。
フィールド名 説明 フィールドタイトル 認証ダイアログで、エンドユーザーに表示されるフィールドの名前を指定します。 フィールドキー この値は認証サービスにエンドユーザーが入力する値を示します。 ヘルプのヒント フィールドに表示されるヘルプ文字はフィールドに入力すべきものを説明しています。 フィールドタイプ 高度なオプションを選択した場合、エンドユーザーインターフェイスに表示されるフィールドのタイプを指定して、フィールドキー値(以下のいずれか)として割り当てられたユーザー入力を収集します。 - テキストボックス
- パスワード
必須 高度なオプションを選択した場合、エンドユーザーはこのフィールドを定義して認証を完了しなければならないかどうかを選択します。 データタイプ 高度なオプションを選択した場合、エンドユーザーからの入力として想定するデータタイプを指定してください。例:文字列。 可視性 高度なオプションを選択した場合、[認証]フィールドを表示、非表示、または読み取り専用のいずれにするかを指定します。 [認証]フィールドの追加
デフォルトでは、[認証]フィールドとはタスクリクエストのメッセージのヘッダーの一部として設定されたものです。タスクリクエストで追加の[認証]フィールドが必要な場合や、想定される認証がヘッダーに含まれていない場合(たとえば社会保障番号やPINなど)、+ 認証フィールドの追加をクリックして、次の図に示されるようにフィールドを定義します。 フィールドタイプフィールドで、必要なタスクリクエストメッセージの位置および[認証]フィールドのタイプによっては、以下のうちの1つを選択することができます。
- ヘッダー – ボットは、[認証]フィールドをリクエストのヘッダーの一部として想定しています。
- ペイロード – ボットは、[認証]フィールドをリクエストの本文内容の一部と想定しています。
- クエリ文字列 – ボットは、[認証]フィールドをリクエストの本文内のクエリと想定しています。
- パスパラメータ―ボットは、[認証]フィールドをURLパスリクエストの一部として想定しています。
フィールドキーのフィールドに、選択済みのフィールドタイプのフィールド名を入力してください。フィールド値フィールドに指定したフィールドキーの値を入力してください。完了をクリックします。新しい[認証]フィールドは、認証フィールドセクションに追加されました。[認証]フィールドを追加する場合、認証フィールドセクションで追加をクリックしてください。必要に応じて、認証チェック URLフィールドで、認証メカニズムによってタスクを展開する前に、ボットビルダーから認証設定をテストするために使用できるURLを定義します。[ダイナミック]フィールド、[パスパラメータ]フィールド、[クエリ]フィールドなどを使用して、テストURLを定義することができます。たとえば、https://kore.someCompany.com/sap/opu/odata/sap/{{authfield1}}/?$format=json コネクタを使用したアクセス セクションでは、 はいを選択して、Kore.aiコネクタエージェントを使用したKore.ai ボットのアクセスを有効にします。ご使用のドメインが定義済みの有効なKore.aiコネクタではない場合、警告メッセージが表示され、ボットの管理者コンソールのシステム管理者に連絡します。詳細については、ボット管理者コンソールのドキュメントのKore.aiコネクタの使用をご覧ください。保存をクリックして認証設定を保存し、新規認証メカニズムのダイアログを閉じます。
認証のテスト – 基本認証
認証を保存した後、新しい認証タイプに認証チェックURLを定義していた場合は、タスクの残りのステップの開発を続ける前に、認証のテストをクリックする際に、認証タブで認証の定義をテストすることができます。 認証のテストをクリックすると、認証のテスト ダイアログが表示され、下図のように、認証チェックURLセクションで指定したURLが表示されます。 テスト認証の設定―基本認証
- 認証チェックURLフィールドに、実証やURLをテスト認証設定に入力してください。
- ボットはサブドメインを使用する場合、テンナンシーフィールドが表示されるので、必ずテナントを指定してください。
- Webサービスのユーザー名とパスワードを入力します。
- URL として求めるコンテンツ タイプは、コンテンツ タイプフィールドで選択します。
- URLをテストする場合、 メソド フィールドは読み取り専用で、GETに設定されています。
- テストをクリックして、認証テストを開始します。
認証の検証が完了すると、認証のテストダイアログが閉じられ、下図のように 認証のテストボタンのすぐ右に、検証の成功・失敗の結果が表示されます。 認証失敗の場合、下記の図のように、認証テスト失敗のメッセージはヘッダーおよび応答のタブとともに表示されます。
仕組み – 基本認証
タスクに基本認証を使用する場合、下記の図のように、Kore.aiアプリケーションは自動的に、ログイン資格情報のユーザーがWebアプリケーションやWebサービスへアクセスするように指示します。エンドユーザーが認証された後、設定は、以下のネーミング構文を使用して保存されます。
{{ 名 }} {{ 姓 }} {{ ボット名 }} {{ アカウント # }} {{ シーケンス# }}
例:ジョン・スミスのTwitterアカウント#1。Kore.aiアプリケーションは、このアカウントを使用して、将来のすべてのタスクリクエストに対して、WebアプリケーションまたはWebサービスにアクセスすることができます。その他、エンドユーザーはアカウントを他のタスクに同じボットで再使用することができます。
- OAuth v2 password grant type – 非標準のWebサービス認証タイプのカスタム認証タイプを定義します。設定の詳細は以下のリンクをクリックしてください。oAuth v2パスワード許可を使用したセットアップ以下の図は、タスク用にカスタマイズされた認証を有効にするために定義しなければならない oAuth v2パスワード許可認証タイプのフィールドの例です。カスタム認証を定義するには、認証タイプのフィールドで oAuth v2パスワード許可 を選択します。次に、ボットビルダーのユーザーインターフェースに表示される認証の名前を特定します。
テナントの定義
必要に応じて、Webアプリケーションやユーザーインターフェースの基本URLにテナント名を使用する場合は、サブドメインセクションではいを選択します。例として、koreは、www.kore.someCompany.comとしてテナントを使用したWebサービスのテナント組織です。下記の設定の例では、テナンシーURLには{tenant}組織のプレースホルダーが含まれます。
フォーム フィールドの追加
デフォルトのユーザー名とパスワードのフィールドがニーズを満たしていない場合、認証フォームのフィールドを追加することで、エンドユーザーに表示される新しいフィールドを追加することができます。認証フォームにフィールドを追加するには + フォームフィールドの追加をクリックします。以下の図は、認証ダイアログへの[パスワード ]フィールドを追加するための定義の一例です。 以下のテーブルでは、認証IDPフォームのフィールドを定義するために使用されるフィールドについて説明しています。
フィールド名 説明 フィールド タイトル 認証ダイアログで、エンドユーザーに表示されるフィールドの名前を指定します。 フィールドキー この値は認証サービスにエンドユーザーが入力する値を示します。 ヘルプのヒント フィールドに表示されるヘルプ文字はフィールドに入力すべきものを説明しています。 フィールドタイプ 高度なオプションを選択した場合、エンドユーザーインターフェイスに表示されるフィールドのタイプを指定して、フィールドキー値(以下のいずれか)として割り当てられたユーザー入力を収集します。 - テキストボックス
- パスワード
必須 高度なオプションを選択した場合、エンドユーザーはこのフィールドを定義して認証を完了しなければならないかどうかを選択します。 データタイプ 高度なオプションを選択した場合、エンドユーザーからの入力として想定するデータタイプを指定してください。例:文字列。 可視性 高度なオプションを選択した場合、[認証]フィールドを表示、非表示、または読み取り専用のいずれにするかを指定します。 [認証]フィールドの追加
デフォルトでは、[認証]フィールドとはタスクリクエストのメッセージのヘッダーの一部として設定されたものです。タスクリクエストで追加の[認証]フィールドが必要な場合や、想定される認証がヘッダーに含まれていない場合(たとえば社会保障番号やPINなど)、+ 認証フィールドの追加をクリックして、次の図に示されるようにフィールドを定義します。 フィールドタイプフィールドで、必要なタスクリクエストメッセージの位置および[認証]フィールドのタイプによっては、以下のうちの1つを選択することができます。
- ヘッダー – ボットは、[認証]フィールドをリクエストのヘッダーの一部として想定しています。
- ペイロード – ボットは、[認証]フィールドをリクエストの本文内容の一部と想定しています。
- クエリ文字列 – ボットは、[認証]フィールドをリクエストの本文内のクエリと想定しています。
- パスパラメータ―ボットは、[認証]フィールドをURLパスリクエストの一部として想定しています。
フィールドキーのフィールドに、選択済みのフィールドタイプのフィールド名を入力してください。フィールド値フィールドに指定したフィールドキーの値を入力してください。完了をクリックします。新しい[認証]フィールドは、認証フィールドセクションに追加されました。[認証]フィールドを追加する場合、認証フィールドセクションで追加をクリックしてください。
トークンURLの定義
トークンURLフィールドで、認証メカニズムによってタスクを展開する前に、ボットビルダーから認証設定をテストするために使用できるURLを定義します。ダイナミックフィールド、パスパラメータフィールド、クエリフィールドなどを使用して、http://{tenant}.someCompany.com/test/{{tokenId}}のようにテストURLを定義することができます。トークンURLメソッドフィールドで、トークンURLのHTTPリクエストメソッドタイプを選択します。PUT、POST、PATCH、DELETE、GETのいずれか。トークンURLコンテンツタイプフィールドで、 トークンURLから想定されるコンテンツタイプを選択します。以下から1つ:JSON、RSS、XML、URL符号化済のJSON、CSV、文字、ツイッター 符号化済の JSON、マルチパート/フォームデータ、マルチパート/関連、やOracle ADF。コネクタでアクセスのセクションで、はいを選択するとKore.aiコネクタエイジェントでKore.aiボットへのアクセスをできるようにします。ご使用のドメインが定義済みの有効なKore.aiコネクタではない場合、警告メッセージが表示され、ボットの管理者コンソールのシステム管理者に連絡します。詳細については、ボット管理者コンソールのドキュメントのKore.aiコネクタの使用をご覧ください。認証を保存をクリックして認証設定を保存し、新規認証メカニズムのダイアログを閉じます。
認証テスト
認証を保存した後、新しい認証タイプに認証URLを定義していた場合は、タスクの残りのステップの開発を続ける前に、認証のテストをクリックする際に、認証ページで認証の定義をテストすることができます。 認証のテストをクリックすると、認証のテスト ダイアログが表示され、下図のように、認証チェックURLセクションで指定したURLが表示されます。 テストをクリックして、認証テストを開始します。認証の検証が完了すると、次の図のようにテスト認証のダイアログが閉じられ、成功または失敗の検証結果がテスト認証ボタンの右横に表示されます。認証失敗の場合、下記の図のように、認証テスト失敗のメッセージはヘッダーおよび応答のタブとともに表示されます。
- OAuth v2クライアントク資格情報
- OAuth v1 – WebアプリケーションやWebサービスがAPIを使用して保護されたリソースにアクセスできるようにするもので、エンドユーザーがKore.aiにログオン資格情報を開示する必要はありません。設定の詳細は以下のリンクをクリックしてください。OAuth v1を使用した認証セットアップOAuthは、Web、モバイル、デスクトップアプリケーションから、シンプルで標準的な方法で安全な認証を可能にするオープンプロトコルです。OAuthを使用するには、まずWebアプリケーションのアカウントを登録する必要があります。それは、認証メカニズムの設定を行うには、そのアプリケーションのログイン資格情報が必要になるからです。
OAuth v1の仕組み
- Kore.aiアプリケーションは、Webアプリケーションから未認証のリクエストトークンを取得します。Kore.aiアプリケーションはユーザーをWebアプリケーションのロクインダイアログへリダイレクトします。
- ユーザーはリクエストトークンを認証してそのアカウントと連結します。Webアプリケーションは、ユーザーをKore.aiアプリケーションにリダイレクトします。
- Kore.aiアプリケーションは、リクエストトークンをアクセストークンと交換します。
- アクセストークンによって、Kore.aiアプリケーションはユーザーに代わってプロバイダの保護されたリソースにアクセスすることができます。
以下の図は、oAuth v1認証タイプのフィールドの一例で、タスクのためにカスタマイズした認証を有効にするために定義する必要があります。 oAuth v1を定義するには、以下のテーブルに記載されているフィールドを定義します。
フィールド名 説明 認証タイプ oAuth v1に設定します。 コールバック URL エンドユーザーの認証が完了した後、エンドユーザーをリダイレクトするために、WebアプリケーションまたはWebサービスが使用するURL。この値(https://idp.kore.ai/workflows/callback/)は、oAuth v1の設定を定義する際に、Kore.aiアプリケーションによって読み取り専用の値として提供されます。 アイデンティティプロバイダ名 WebアプリケーションやWebサービスの名前、例:Twitter。このフィールドは必須です。 コンシューマキー Kore.aiアプリケーションの識別情報としてWebアプリケーションに提供された値です。このフィールドは必須です。 コンシューマシックレット Kore.aiアプリケーションが コンシューマーキーの所有権を確立するために提供する秘密の値。このフィールドは必須です。 リクエストトークンリンク Kore.ai アプリケーションが未認証のリクエストトークンを取得するために使用するURL。リクエストトークンとはKore.aiアプリケーションがアクセストークンを取得ためのエンドユーザーからの認証を取得ための値。例:https://{tenant}.someCompany.com/oauth/request_token。エンドユーザーの認証の後、Kore.aiアプリケーションからアクセストークンを要求することができます。このフィールドは必須です。 アクセストークンリンク エンドユーザーの認証済みリクエストトークンをアクセストークンと交換するために使用されるURL。アクセストークンとは、Kore.aiアプリケーションが、エンドユーザーのログオン資格情報を使用する代わりに、エンドユーザーのためにWebアプリケーションやWebサービスへのアクセス権を取得するために使用する値です。例:、https://{tenant}.someCompany.com/oauth/access_token。このフィールドは必須です。 ユーザー認証リンク アクセストークンを使用してWebアプリケーションまたはWebサービスにアクセスするために、Kore.aiアプリケーションのエンドユーザー認証を取得するために使用されるURL。例:https://{tenant}.someCompany.com/oauth/authorize。このフィールドは必須です。 コネクタを使用してアクセス 「はい」を選択し、Kore.aiコネクタエージェントを使用してKore.aiボットにアクセスできるようにします。このオプションは、Kore.ai コネクタエージェントが企業の社内ネットワークで構成、有効化されている場合に表示されます。詳細については、Kore.ai Connectorの使用をご覧ください。 テナントの定義
必要に応じて、Webアプリケーションやユーザーインターフェースの基本URLにテナント名を使用する場合は、サブドメインセクションではいを選択します。例として、koreは、www.kore.someCompany.comとしてテナントを使用したWebサービスのテナント組織です。下記の設定の例では、テナンシーURLには{tenant}組織のプレースホルダーが含まれます。
フィールドの追加
「+ 追加フィールドの追加」 をクリックして、下図のように、追加フィールドダイアログを開き、必要に応じて追加の認証入力フィールドを表す1つ以上のキー/値のペアを入力します。 以下のフィールドを指定します。
- フィールド キー – 認証に指定するカスタムフィールド名です。
- フィールド値 – 認証のために指定するカスタムフィールドの値です。
追加をクリックして追加のフィールドを保存します。追加のフィールドを追加する場合、認証フィールドセクションの追加をクリックしてください。
[認証]フィールドの追加
デフォルトでは、[認証]フィールドとはタスクリクエストのメッセージのヘッダーの一部として設定されたものです。タスクリクエストで追加の[認証]フィールドが必要な場合や、想定される認証がヘッダーに含まれていない場合(たとえば社会保障番号やPINなど)、+ 認証フィールドの追加をクリックして、次の図に示されるようにフィールドを定義します。 フィールドタイプフィールドで、必要なタスクリクエストメッセージの位置および[認証]フィールドのタイプによっては、以下のうちの1つを選択することができます。
- ヘッダー – ボットは、[認証]フィールドをリクエストのヘッダーの一部として想定しています。
- ペイロード – ボットは、[認証]フィールドをリクエストの本文内容の一部と想定しています。
- クエリ文字列 – ボットは、[認証]フィールドをリクエストの本文内のクエリと想定しています。
- パスパラメータ―ボットは、[認証]フィールドをURLパスリクエストの一部として想定しています。
フィールドキーのフィールドに、選択済みのフィールドタイプのフィールド名を入力してください。フィールド値フィールドに指定したフィールドキーの値を入力してください。追加をクリックします。新しい認証フィールドは、認証フィールドセクションに追加されました。[認証]フィールドを追加する場合、認証フィールドセクションで追加をクリックしてください。
認証テスト
認証を保存した後、タスクの残りのステップの開発を続ける前に、認証のテストをクリックすると、 認証ページで認証の定義をテストすることができます。 認証のテストをクリックすると、認証トークンのURLと コンシューマキーおよび コンシューマトークンを使用して、テストが実行されます。テナントが定義されていた場合は、下図のようなテスト認証ダイアログが表示されます。 テストをクリックして、認証テストを開始します。認証の検証が完了すると、次の図のようにテスト認証のダイアログが閉じられ、成功または失敗の検証結果がテスト認証ボタンの右横に表示されます。認証失敗の場合、下記の図のように、認証テスト失敗のメッセージはヘッダーおよび応答のタブとともに表示されます。
- OAuth v2 – OAuthプロトコルの最新版で、WebアプリケーションやWebサービスの特定の認証フローに焦点を当てています。設定の詳細は以下のリンクをクリックしてください。OAuth v2を使用した認証セットアップOauth v2は、Web、モバイル、デスクトップアプリケーションから、シンプルで標準的な方法で安全な認証を可能にするオープンプロトコルです。OAuth v2を使用するには、まずWebアプリケーションのアカウントを登録する必要があります。それは、認証メカニズムの設定を行うには、そのアプリケーションのログイン資格情報が必要になるからです。
oAuth v2の仕組み
- Kore.aiアプリケーションはユーザーをWebアプリケーションのロクインダイアログへリダイレクトします。
- ユーザーは認証します。
- Webアプリケーションは、アクセストークンでユーザーをKore.aiアプリケーションにリダイレクトします。
- Kore.aiアプリケーションはアクセストークンを検証します。
- アクセストークンによって、Kore.aiアプリケーションはユーザーに代わってプロバイダの保護されたリソースにアクセスすることができます。
以下の図はoAuth v2認証タイプを定義するためのフィールドを表示します。 oAuth v2を設定するには、以下のテーブルに記載されているフィールドを定義します。
フィールド名 説明 認証タイプ oAuth v2に設定します。 コールバック URL エンドユーザーの認証が完了した後、エンドユーザーをリダイレクトするために、WebアプリケーションまたはWebサービスが使用するURL。この値(https://idp.kore.ai/workflows/callback/)は、oAuth v1の設定を定義する際に、Kore.aiアプリケーションによって読み取り専用の値として提供されます。 アイデンティティプロバイダ名 WebアプリケーションやWebサービスの名前、例:Asana。このフィールドは必須です。 クライアント ID Kore.ai クライアントの IDです。 クライアントシックレットキー Webアプリケーションに対して、クライアントIDに基づくKore.aiアプリケーションの認証として提供される値。 認証 URL アクセストークンを使用してWebアプリケーションまたはWebサービスにアクセスするために、Kore.aiアプリケーションのエンドユーザー認証を取得するために使用されるURL。このフィールドは必須です。 コネクタを使用してアクセス 「はい」を選択し、Kore.aiコネクタエージェントを使用してKore.aiボットにアクセスできるようにします。このオプションは、Kore.ai コネクタ エージェントが企業の社内ネットワークで構成、有効化されている場合に表示されます。詳細については、Kore.ai Connectorの使用をご覧ください。 認証 URL Kore.ai アプリケーションが未認証のリクエストトークンを取得するために使用するURL。リクエストトークンとはKore.aiアプリケーションがアクセストークンを取得ためのエンドユーザーからの認証を取得ための値。エンドユーザーの認証の後、Kore.aiアプリケーションからアクセストークンを要求することができます。このフィールドは必須です。 テナントの定義
必要に応じて、Webアプリケーションやユーザーインターフェースの基本URLにテナント名を使用する場合は、サブドメインセクションではいを選択します。例として、koreは、www.kore.someCompany.comとしてテナントを使用したWebサービスのテナント組織です。下記の設定の例では、テナンシーURLには{tenant}組織のプレースホルダーが含まれます。
フィールドの追加
「+ 追加フィールドの追加」 をクリックして、下図のように、追加フィールドダイアログを開き、必要に応じて追加の認証入力フィールドを表す1つ以上のキー/値のペアを入力します。 以下のフィールドを指定します。
- フィールド キー – 認証に指定するカスタム フィールド名です。
- 値 – カスタムフィールドの認証に指定する値です。
追加をクリックして追加のフィールドを保存します。追加のフィールドを追加する場合、認証フィールドセクションの追加をクリックしてください。
[認証]フィールドの追加
デフォルトでは、[認証]フィールドとはタスクリクエストのメッセージのヘッダーの一部として設定されたものです。タスクリクエストで追加の[認証]フィールドが必要な場合や、想定される認証がヘッダーに含まれていない場合(たとえば社会保障番号やPINなど)、+ [認証]フィールドの追加をクリックして、次の図に示されるようにフィールドを定義します。 フィールドタイプフィールドで、必要なタスクリクエストメッセージの位置および[認証]フィールドのタイプによっては、以下のうちの1つを選択することができます。
- ヘッダー – ボットは、[認証]フィールドをリクエストのヘッダーの一部として想定しています。
- ペイロード – ボットは、[認証]フィールドをリクエストの本文内容の一部と想定しています。
- クエリ文字列 – ボットは、[認証]フィールドをリクエストの本文内のクエリと想定しています。
- パスパラメータ―ボットは、[認証]フィールドをURLパスリクエストの一部として想定しています。
フィールドキーのフィールドに、選択済みのフィールドタイプのフィールド名を入力してください。フィールド値フィールドに指定したフィールドキーの値を入力してください。追加をクリックします。新しい[認証]フィールドは、[認証]フィールドセクションに追加されました。[認証]フィールドを追加する場合、認証フィールドセクションで追加をクリックしてください。
認証テスト
認証を保存した後、タスクの残りのステップの開発を続ける前に、認証のテストをクリックすると、 認証ページで認証の定義をテストすることができます。 認証のテストをクリックすると、認証トークンURLおよび クライアントIDおよびコンシューマトークンを使用して、テストが実行されます。テナントが定義されていた場合は、下図のようなテスト認証ダイアログが表示されます。 テストをクリックして、認証テストを開始します。認証の検証が完了すると、次の図のようにテスト認証のダイアログが閉じられ、成功または失敗の検証結果がテスト認証ボタンの右横に表示されます。認証失敗の場合、下記の図のように、認証テスト失敗のメッセージはヘッダーおよび応答のタブとともに表示されます。
- APIキー – WebアプリケーションまたはWebサービスによって生成または提供される識別および認証トークン。受信するアプリケーションリクエストを識別するために使用され、ケースによっては安全なアクセスのための認証も提供します。設定の詳細は以下のリンクをクリックしてください。APIキーを使用したセットアップAPIキーは、識別のための一意の識別子と秘密のトークンの両方として機能し、関連するAPIに対する一連のアクセス権を提供するための認証も可能です。エンドユーザーに対して、アクセスのためにユーザー名とパスワードの両方を指示するのではなく、タスク設定時にユーザーに API キーのみを指示します。APIキー認証 タイプを使用するには、まずWebアプリケーションにアカウントを登録し、そのアプリケーション用のAPIキーを生成して、Kore.ai認証メカニズムの設定を行う必要があります。以下の図に、APIキー認証タイプで定義するフィールドを示します。APIキー認証を定義するには、 認証タイプ フィールドで APIキー を選択します。次に、ボットビルダーのユーザーインターフェースに表示される認証の名前を特定します。
テナントの定義
必要に応じて、Webアプリケーションやユーザーインターフェースの基本URLにテナント名を使用する場合は、サブドメインセクションではいを選択します。例として、koreは、www.kore.someCompany.comとしてテナントを使用したWebサービスのテナント組織です。下記の設定の例では、テナンシーURLには{tenant}組織のプレースホルダーが含まれます。
認証フォームへの[フォーム]フィールドの追加
デフォルトのユーザー名とパスワードのフィールドがニーズを満たしていない場合、認証フォームのフィールドを追加することで、エンドユーザーに表示される新しいフィールドを追加することができます。認証フォームにフィールドを追加するには + [フォーム]フィールドの追加をクリックします。以下の図は、認証ダイアログへの[パスワード] フィールドを追加するための定義の一例です。 以下のテーブルでは、認証IDPフォームのフィールドを定義するために使用されるフィールドについて説明しています。
フィールド名 説明 フィールド タイトル 認証ダイアログで、エンドユーザーに表示されるフィールドの名前を指定します。 フィールドキー この値は認証サービスにエンドユーザーが入力する値を示します。 ヘルプのヒント フィールドに表示されるヘルプ文字はフィールドに入力すべきものを説明しています。 フィールドタイプ 高度なオプションを選択した場合、エンドユーザーインターフェイスに表示されるフィールドのタイプを指定して、フィールドキー値(以下のいずれか)として割り当てられたユーザー入力を収集します。 - テキストボックス
- パスワード
必須 高度なオプションを選択した場合、エンドユーザーはこのフィールドを定義して認証を完了しなければならないかどうかを選択します。 データタイプ 高度なオプションを選択した場合、エンドユーザーからの入力として想定するデータタイプを指定してください。例:文字列。 可視性 高度なオプションを選択した場合、[認証]フィールドを表示、非表示、または読み取り専用のいずれにするかを指定します。 [認証]フィールドの追加
デフォルトでは、[認証]フィールドとはタスクリクエストのメッセージのヘッダーの一部として設定されたものです。タスクリクエストで追加の[認証]フィールドが必要な場合や、想定される認証がヘッダーに含まれていない場合(たとえば社会保障番号やPINなど)、+ 認証フィールドの追加をクリックして、次の図に示されるようにフィールドを定義します。 フィールドタイプフィールドで、必要なタスクリクエストメッセージの位置および[認証]フィールドのタイプによっては、以下のうちの1つを選択することができます。
- ヘッダー – ボットは、[認証]フィールドをリクエストのヘッダーの一部として想定しています。
- ペイロード – ボットは、[認証]フィールドをリクエストの本文内容の一部と想定しています。
- クエリ文字列 – ボットは、[認証]フィールドをリクエストの本文内のクエリと想定しています。
- パスパラメータ―ボットは、[認証]フィールドをURLパスリクエストの一部として想定しています。
フィールドキーのフィールドに、選択済みのフィールドタイプのフィールド名を入力してください。フィールド値フィールドに指定したフィールドキーの値を入力してください。追加をクリックします。新しい[認証]フィールドは、認証フィールドセクションに追加されました。[認証]フィールドを追加する場合、認証フィールドセクションで追加をクリックしてください。
認証のテスト – APIキー
認証を保存した後、新しい認証タイプに認証チェックURLを定義していた場合は、タスクの残りのステップの開発を続ける前に、認証のテストをクリックする際に、認証タブで認証の定義をテストすることができます。 認証のテストをクリックすると、認証のテスト ダイアログが表示され、下図のように、認証チェックURLセクションで指定したURLが表示されます。 認証のテスト – APIキーを設定するには
- 認証チェックURLフィールドに、実証やURLをテスト認証設定に入力してください。
- ボットはサブドメインを使用する場合、テンナンシーフィールドが表示されるので、必ずテナントを指定してください。
- API キーフィールドでアプリケーションの API キーを入力します。
- URL として求めるコンテンツ タイプは、コンテンツ タイプフィールドで選択します。
- URLをテストする場合、 メソド フィールドは読み取り専用で、GETに設定されています。
- テストをクリックして、認証テストを開始します。
認証の検証が完了すると、次の図のようにテスト認証のダイアログが閉じられ、成功または失敗の検証結果がテスト認証ボタンの右横に表示されます。認証失敗の場合、下記の図のように、認証テスト失敗のメッセージはヘッダーおよび応答のタブとともに表示されます。
- 基本認証 – ユーザー名とパスワードの情報を収集するための標準プロトコル。Kore.aiは、エンドユーザーの情報を保護するために、基本認証と組み合わせてSSL暗号を使用しています。設定の詳細は、以下のリンクをクリックします。
ステップ 3:APIリクエスト
タスクで必要があれば、リクエストオブジェクトを定義して、たとえば、エンドユーザーがタスクを完了するために選択する動的ドロップダウンの選択肢を提供することができます。情報タスクのAPIリクエストタブでは、APIパラメータ、オプションのAPIタスク初期化、APIリクエスト のプリプロセッサまたはポストプロセッサ、およびAPIリクエストを定義することができます。また、APIリクエストの ペイロードから想定される 応答サンプルも追加する必要があります。
また、SOAPを使用した情報タスクリクエストを設定することもできます。その場合は、WSDL URLおよびコネクタを設定する必要があります。
- 認証 – アクションタスクに必要な場合、APIにアクセスするための認証を定義する必要があります。例:基本認証、OAuth、API Keyなどの使用。詳細は、上記の認証の設定をご覧ください。
- パラメータ – APIリクエストの処理に使用される1つ以上のパラメータを定義します。例:ユーザープロンプトからの入力、選択肢リストからのエンドユーザーによる選択、URLなど。詳細は、以下のアクションタスクのパラメータを定義するをご覧ください。
- イニシャライザ(オプション) – 実行するカスタムJavaScriptを指定したり、Webサービスでコードの実行が必要な場合にタスクインスタンスを作成する前にセッション変数を設定したり、APIリクエストを実行する前にユーザーコンテキストの詳細を変更したりすることができます。詳細は、以下の「 イニシャライザの定義をご覧ください。
- リクエスト – WebサービスへのAPIコールを行うこと、ボットへのURLとパスを使用してアクションタスクを開始すること、およびWebサービスからボットプラットフォームへのデータペイロードの配信を開始することなどに使用されるリクエストチェーンを定義します。リクエストチェーンは、プリプロセッサ、APIリクエスト、およびポストプロセッサから成ります。詳細は、以下の「 リクエストチェーンの定義をご覧ください。
- 応答サンプル – アクションタスクのペイロードで受け取ることが想定されるキー/値のペアを定義します。ボットユーザーに表示するデータを処理するために、提供されたキーがドロップダウンの選択肢として利用できます。詳細は、以下の応答サンプルの追加をご覧ください。
- パラメータのセクションをクリックして、次に追加をクリックします。 タスクパラメータの設定ダイアログが開きます。
- ご選択の次第、下記のテーブルの説明の通りに関連のフィールド値を入力してください。
フィールド名 説明 タスク パラメーターのタイプ 次のうちの 1 つを指定します。 - ペイロード パラメーター – POST、PUT、GET、DELETE などの HTTP メソッドによるフィールド タイプでペイロード データを示します。例:
{ "taskId":"{payloadfield2}", "message":"{payloadfield1}" }
- クエリパラメータ – このフィールドタイプは、URLパスの一部またはURL内のクエリとして使用されます。例:
http://app.asana.com/api/workspaces/{queryfield1}/project/{queryfield2}?userId={queryfield3}
パラメータ名 ユーザーに表示されるタスク入力フィールドのタイトル(例: アカウントを選ぶ プロンプトメッセージ パラメータ名の下に表示されるヘルプの説明。例:どちらのアカウントにアクセスしたいですか? パラメータキー 収集したいエンドユーザーの入力値を表すタスクキー(例: accountType)。 必要エンティティのタイプ 入力パラメータはエンティティに関連付けられ、エンティティタイプを選択することができます。 - 添付ファイル
- 都市
- 国
- 会社
- 通貨
- 日付
- メール
- ラベル
- 場所
- メッセージ
- 名前
- 数字
- パーセント
- 電話番号
- 文字列
エンティティタイプの詳細は、こちらをクリックしてください。選択されたエンティティタイプに基づいて、残りのパラメータが設定されていますが、これを変更することができます。
パラメータタイプ キーの値に割り当てるリクエストオブジェクト用のユーザー入力を収集するためにエンドユーザーインターフェースに表示されるタスク入力フィールドのタイプを指定します。デフォルト設定はテキストボックスですが、以下のいずれか1つをカスタマイズできます。 - 日付 – フォーマットフィールドが表示され、エンドユーザーが自分のアカウントにタスクが設定される際に定義する日付フォーマットの構文を選択できます。日付フォーマット選択のドロップダウン リストから、次のうちの1つを選択します。
- dd-MM-YYYY – 例:16-05-1999
- MM-dd-YYYY – 例:05-16-1999
- dd-MM-YY – 例:16-05-99
- YYYY-MM-dd – 例:1999-05-16
- URL – 正しい URL 構文のためのフィールド検証を含む、エンドユーザーによる URL 入力用のテキスト ボックスを表示します。プレースホルダーフィールドには、テキストボックスに表示されるヘルプヒントを入力します。例:こちらにWebサイトのURLを入力してください。
- テキストボックス―エンドユーザーにタスクの入力フィールドとして文字を入力するためのテキストボックスを表示します(通常は数語程度)。プレースホルダーフィールドには、テキストフィールドに表示されるヘルプヒントを入力します。例:刺しゅうしたい名前のタイプ。
- 静的ドロップダウン – エンドユーザーに選択肢のドロップダウン リストを表示します。オプションの追加をクリックして以下のパラメータでエンドユーザーに表示するアイテムのリストの追加を始まります:
- オプション名 – エンドユーザーに表示されるオプションの名前です。
- オプション値―アプリケーションに返すオプション名という値と示します。
- デフォルト値 – 1つ以上のオプションが定義されている場合、オプションのデフォルト値を選択します。
- 検索可能 – エンドユーザーがこのフィールドにテキストを入力するときに、ダイナミック検索と表示を有効にするか、あるいは一致がない場合に、フリーフォームのエントリを許可するかを選択します。
保存をクリックします。アイテムを追加する場合、オプションを追加をもう一度クリックします。オプションのアクション列において、オプションを編集または削除します。
- 動的ドロップダウン – ボット用のURLからの応答に基づいて、実行時に動的に生成されるドロップダウンリストを表示します。例:JIRAタスク通知用のプロジェクトリスト。以下の動的に配置されるドロップダウンのプロパティを定義します。
- エンドポイントURL – ボットのエンドポイントURL。例:https://app.asana.com/api/1.0/workspaces。
- エンドポイントのコンテンツタイプ – 指定されたエンドポイントURLから想定されるコンテンツタイプ。以下から1つ:JSON、RSS、XML、URLエンコードのJSON、CCV、文字、またはTwitter エンコードのJSON。
- エンドポイントメソッド – 以下のうちの1つ:
- GET – [タスク]フィールドのHTTPリクエストGETメソッドを指定します。
- POST – [タスク]フィールドのHTTPリクエストPOSTメソッドを指定します。
- 応答パス – 希望するドロップダウンリスト値を含む応答内のパス。例:データ。
- ラベルキー – ドロップダウンオプションのラベルのキー。例:名前。
- オプションの値キー – ドロップダウンオプションの値のキー。例:ID。
- ペイロードフィールドの追加 – クリックすると、動的ドロップダウンのオプションとして、応答ペイロードから1つ以上のフィールドが追加されます。各ペイロードフィルドについて、ペイロードフィールドのキーとペイロードフィールドの値を入力し、保存をクリックします。アクション列でペイロードフィールドを編集または削除します。
- 検索可能 – エンドユーザーがこのフィールドにテキストを入力するときに、ダイナミック検索と表示を有効にするか、あるいは一致がない場合に、フリーフォームのエントリを許可するかを選択します。
- Textarea – エンドユーザーがタスク入力としてテキスト(通常は数センテンス)を入力するためのテキストエリアボックスを表示します。プレースホルダーフィールドに、テキストボックス内でエンドユーザーに対して表示するヘルプヒントを入力します。
- 先行入力 – タスクに定義されたURLからの応答を基にした検索結果に一致する3つ以上の文字をユーザーが入力すると、実行時のエンドユーザーに対して動的に配置されたドロップダウンリストの選択肢が表示されます。例:JIRAのタスク通知メッセージのプロジェクトリスト。以下の動的に配置されるドロップダウンへのプロパティを定義します。
- エンドポイントURL – ボットのエンドポイントURL。例:https://app.asana.com/api/1.0/workspaces。
- エンドポイントのコンテンツタイプ – 指定されたエンドポイントURLから想定されるコンテンツタイプ。以下から1つ:JSON、RSS、XML、URL エンコードされた JSON、CCV、テキスト、Twitter エンコードされた JSON、Multipart/Form-data または Multipart/Related。
- エンドポイントメソッド – 以下のうちの1つ:
- GET – [タスク]フィールドのHTTPリクエストGETメソッドを指定します。
- POST – [タスク]フィールドのHTTPリクエストPOSTメソッドを指定します。
- 応答パス – 希望するドロップダウンリスト値を含む応答内のパス。例:データ。
- ラベルキー – ドロップダウンオプションのラベルのキー。例:名前。
- オプションの値キー – ドロップダウンオプションの値のキー。例:ID。
- ペイロードフィールドの追加 先行入力フィールドのオプションとして、 応答ペイロードから 1 つ以上のフィールドをクリックして追加します。各先行入力のフィールドオプションについて、ペイロードフィールドのキーとペイロードフィールドの値を入力し、保存をクリックします。アクション列でペイロードフィールドを編集または削除します。
- 編集可能―先行入力の検索結果が一致しない場合のオプションとして、エンドユーザーがフィールドに自由にテキストを入力できるようにします。
- メール – エンドユーザーがメールアドレスを入力するためのテキストボックスを表示します。プレースホルダーフィールドに、エンドユーザーに表示するヘルプヒントをテキストボックス内に入力します。
- 日付と時間 – エンドユーザーが日付と時間を入力するためのテキストボックスを表示します。フォーマットフィールドに、エンドユーザーに表示される日付のテキストボックスに、想定する日付や時間のフォーマットを入力します。日付フォーマットの選択 のドロップダウンリストで、日付と時間のフォーマットを選択します。
- タイムゾーン―操作システムの設定に基づくタイムゾーンのドロップダウンリストを表示します。
- 位置―エンドユーザーが地理的位置を入力するためのテキストボックスを表示します。例:Orlando, FLまたは32801。
- ネスト化フォーム – 親入力フィールドの下に、エンドユーザーの入力フィールドをネスト化形式で表示します。ネストされたフォーム入力フィールドには、次のフィールドを指定します。
- 配列要素型 – 親となる入力フォーム要素のデータ型を選択します。
- ネスト化フォームフィールドの追加 – 1 つ以上のネスト化フォーム フィールドをクリックして追加します。
- ファイル アップロード – アップロードするファイルの検索や選択ができるエンドユーザー制御を表示します。クリックして、ファイルアップロードペイロード キーを入力します。ファイルアップロードペイロードキーが定義されている場合、ファイルアップロードペイロードフィールド値のドロップダウンリストで以下のうちから1つ選択してください。
- ファイル名
- ファイルサイズ
- ファイルコンテンツタイプ
データタイプ ユーザー入力タイプのうちの 1 つを選択します。 - 文字列 – ユーザーは任意の一連の数字、文字や特殊文字を入力することができます。
- 数字 – ユーザーは数字を入力することができます。特殊文字は使用できません。
- ブール値 – ユーザーは true または false のブール値を入力できます。
- メール – ユーザーは有効なメール アドレスを入力できます。
- オブジェクト – ボットからのデータは、JSONオブジェクトとして受信できます。例:次のように定義された位置の詳細として、 “location” : { “lat” : 17.4374614, “lng” : 78.4482878 } ここで、リクエストチェーンやタスクリクエストのプロパティを、 location.latおよびlocation.lngと表記します。
- 配列 – ユーザーは、カンマで区切った値のリストをボットに渡すことができます。例として、グーグルカレンダーでは、複数の参加者のデータのパスは: “attendees”: [“user1”, “user2”, “user3”] 選択した場合、エンドユーザーの入力の配列のタイプを以下のいずれかに指定します。
- 文字列
- 数字
- ブール値
- メール
- 配列
- 日付
- 日付―ユーザーは完全な日付を入力するか、日付の選択肢から選択することができます。
必須 タスク設定の構成を保存するために、エンドユーザーがこの設定を定義する必要があるかどうかを選択します。 - ペイロード パラメーター – POST、PUT、GET、DELETE などの HTTP メソッドによるフィールド タイプでペイロード データを示します。例:
- [詳細設定] タブをクリックして、タスク フィールドの追加のオプション設定を定義します。
フィールド名 | 説明 |
---|---|
可視性 | タスクの入力フィールドをエンドユーザーから見えるようにするか、見えないようにするかを指定します。可視性フィールドはカスタム設定することもできます。ここでは、データはユーザーから取得されますが、クエリパラメータやペイロードフィールドとしては使用されません。例として、JIRAボットの場合、以下のように@mentionタグを使用してチケットにコメントを投稿します。「@Mike、こちらの問題について調べてください」 JIRA APIで「コメントを投稿する」には1つのクエリフィールドおよび1つのペイロードフィールドが必須です:
可視性フィールドをカスタムに設定すると、JIRA APIを使用して |
キーの置き換え | Kore.ai によるキーの転置を無効にするかどうかを選択します。デフォルトでは、Kore.aiはキーと値のペアを転置します。たとえば、”parameter”:”value” はKore.aiによって “parameter:{value:”actualValue”} に転置されます。選択すると、キーは置換されません。 |
セッションから取得 | 選択すると、このフィールドのユーザー入力値をセッション変数として格納します。選択すると、[セッションからのフィールド値] のフィールドを表示します。既存の変数や [新規のセッション変数を追加] を選択して新規の変数を定義します。新規のセッション変数を作成するには、変数のスコープを選択し、変数を格納するキーを定義する必要があります。[スコープ] フィールドでは、次のうちの 1 つを選択します。
|
タスクイニシャライザの定義
タスクの初期化子を設定する場合、初期化子タブをクリックしてください。JavaScriptエディターが開き、必要なコードを書くことができます。 JavaScriptエディターで、以下のようにキーとスコープを定義します。
- EnterpriseContext – 企業の中のあらゆるボットとあらゆるユーザーが使用できるキー/値ペア。例として、GitHubボットの場合、ユーザーは1つ以上の企業リポジトリにアクセスする必要がます。イニシャライザでは、以下のJavaScriptコードでリポジトリデータをGitrepository(エンタープライズコンテキスト)として保持することができます。
var userRepository = { "title": _labels_[repository], "value": repository }; EnterpriseContext.put('Gitrepository', userRepository, 200000);
- BotContext – この特定ボットのあらゆるユーザーが利用できるキー/値のペアです。例として、ユーザー所在地を拠点にしたセッションにおいて、金融取引用にデフォルトの通貨を設定することができます。イニシャライザでは、以下のJavaScriptコードによって、デフォルトの通貨データを通貨(ボットコンテキスト)として存続させることができます。
var defaultCurrency = { TODO Custom JavaScript for location-based currency } BotContext.put('currency', defaultCurrency, 200000);
- UserContext – 企業の全ボットおよび全ユーザーが使用可能なキー/値ペアです。これらのキーは読み取り専用で、ユーザー データとしてシステムが提供します。
- _id – Kore.aiユーザーのIDです。
- emailId – ユーザーIDと関連するメールアドレスです。
- lastName – ユーザーの姓です。
- firstName – ユーザーの名です。
- profImage – ユーザーの画像やアバター ファイル名です。
- profColour – ユーザーアカウントの色です。
- activationStatus – ユーザーのアカウントステータスです。
- title – ユーザーのタイトルです。(定義されている場合)
- orgId – ユーザーアカウントの組織IDです(定義されている場合)。
- UserSession – 企業内のすべてのボットに対して、特定ユーザーが利用できるキー/値のペアを定義します。例として、商取引、輸送、宅配便サービスのためのユーザーの自宅住所など、ユーザーの位置を保存して全ボットにも利用できるようにしたい場合もあります。イニシャライザでは、以下のJavaScriptコードによって、デフォルトの位置データをHomeLocation (UserSession)として存続させることができます。
var location = { "title": labels[location], "value": { "latitude": location.latitude, "longitude": request.location.longitude } }; UserSession.put('HomeLocation', location, '20000');
- BotUserSession – 特定のユーザーの入力に基づいて、特定のボットに使用できるキー・値のペアを定義します。例として、 複数のボットタスクにとってユーザー位置を存続させたい場合もあります。旅行ボットの場合、ユーザーは同じ自宅と目的地の住所に基づいてフライトとホテルを予約できる場合があります。イニシャライザでは、以下のJavaScriptコードによって、デフォルトの自宅と宛先のデータを、HomeLocation(BotUserSession )およびDestinationLocation(BotUserSession )として存続させることができます。
var homelocation = { "title": labels[request.sourceLocation], "value": { "latitude": request.sourceLocation.latitude, "longitude": request.sourceLocation.longitude } }; BotUserSession.put('HomeLocation', homelocation, '20000'); var destlocation = { "title": labels[request.destLocation], "value": { "latitude": request.destLocation.latitude, "longitude": request.destLocation.longitude } }; BotUserSession.put('DestinationLocation', destlocation, '20000’);
GETとPUT構文
以下のコードの例は、各コンテキストタイプのキー値ペアをGETまたはPUTする構文を表示します。
"EnterpriseContext" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...}//put the value at the key for the specified ttl, ttl is in minutes }, "BotContext" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...}//put the value at the key for the specified ttl, ttl is in minutes }, "UserContext" : { "get" : function(key){...},//get the specified key }, "UserSession" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...}//put the value at the key for the specified ttl, ttl is in minutes }, "BotUserSession" : { "get" : function(key){...},//get the specified key "put" : function(key, value, ttl){...}//put the value at the key for the specified ttl, ttl is in minutes }
例:
BotContext.put("topicSessionVariable","music",2000); UserSession.put("firstName","Mary",20000); UserContext.get("firstName");
Exception Syntax
また、タスクを設定する前に、認証失敗などのエラーを捕捉するためのカスタムエラーメッセージを定義することもできます。例外をキャプチャした場合、タスクの設置は中止します。以下の構文を使用して例外を外します。
{ "exceptions": { "message": " Error Message" } }
例:
var ex ={}; var exceptions={}; exceptions.message ='You can not proceed further with out valid permissions'; ex.exceptions = exceptions; print(JSON.stringify(ex)); //print is mandatory.
イニシャライザセクションでは、セッションキーまたはその他のセッション変数を使用することができますが、値を設定またはアクセスすることはできません。例:
var name = UserContext.get("firstName")+UserContext.get("lastName"); UserSession.put("fullName") = name;
先行コードの例では、タスクの詳細設定セクションのセッションから取得フィールドで定義されたタスクのパラメータを使用して、値をセッションに入力します。キーは、カスタム定義されたUserSession
コンテキスト変数のfullName
として定義されます。
タスク初期化子の例
以下のコードは、タスクの初期化子でAPIリクエストに変数を先行発生するユーザーIDおよびメールのデータを取得する例です。
var x = UserContext.get("identities"); var isEmailFound = false; for (var i = 0; i < x.length; i++) { if (x[i].type === "mapped") { var identity = x[i].val var arr = identity.split("/"); var pattern = /^cs/i; var result = arr[0].match(pattern); if (result) { isEmailFound = true; UserSession.put("rtmEmail", arr[1], '20000'); } } } if (!isEmailFound) { for (var j = 0; j < x.length; j++) { if (x[j].type === "email") { UserSession.put("rtmEmail", x[j].val, '20000'); } } }
APIリクエスト
あらゆるタスクにも、APIリクエストを定義してからWebサービスへのコールでタスクを開始することができます。少なくとも各タスクに1点のAPIリクエストが必須です。各APIリクエストについては、必ず1つ以上のリクエストURLs、およびWebサービスからのデータペイロード転送を開始するためのタスクへのパスを追加する必要があります。
APIリクエストの設定
- APIリクエストタブで、リクエストタブを展開し、APIの追加をクリックします。
- 以下の手順の説明に従って、APIの追加ダイアログのフィールドの値を指定します。
- 名前フィールドに、たとえばマイAPIリクエストのように、APIリクエストの名前を入力します。
- メソッドドロップダウンリストで、タスクに使用するHTTPメソッドを選択します。以下から1つ:
- POST―顧客情報やファイルのアップロード、HTMLフォームの使用など、サーバーにデータを送信するために使用します。
- PUT– ターゲットリソースのコンテンツを、送信されてきたコンテンツに置き換えます。
- PATCH – 送信されてきたコンテンツに、既存のターゲットリソースのコンテンツを追加します。
- DELETE―既存のターゲットリソースのコンテンツを削除します。
- GET―既存のターゲットリソースのコンテンツを返します。
- URLフィールドには、ボットタスクのレスポンスを処理するためのURLを指定します。例:http://koremessenger.com/postURL。次の例のように、URLにセッション変数を使用することもできます。
https://mySite.crm.ondemand.com/sap/c4c/odata/v1/c4codata/ServiceRequestCollection?$filter=ID eq '{id}' and ReporterEmail eq '{userEmail}'&$expand=ServiceRequestHistoricalVersion,ServiceRequestDescription
メモ:URLによっては、 エンド パラメータとスタート パラメーターにKore.ai独自のパラメーター値を使用したいこともあります。Kore.aiのパラメータ値の詳細については、ボットの追加にあるボット固有のドキュメントをご参照ください。 - コネクタを使用したアクセスフィールドで、はいを選択し、Kore.aiコネクタエージェントを使用してKore.ai ボットへのアクセスを有効にします。このオプションは、Kore.ai コネクタ エージェントが企業の社内ネットワークで構成、有効化されている場合に表示されます。詳細については、Kore.ai Connectorの使用をご覧ください。
- ヘッダータブのコンテンツタイプフィールドで、サンプル応答データに以下のサポートされているデータタイプのいずれかを選択します。
- JSON – JavaScriptオブジェクトノテーションは、人間が読めるテキストを使用して、データオブジェクトを属性と値のペアとして送信するオープンスタンダードなフォーマットです。Kore.aiサーバーとボットWebアプリケーションとの間のデータ転送には、JSONを使用することができます。
- RSS – リッチサイトサマリーあるいはリアリーシンプルシンジケーションは、ブログエントリ、ニュースヘッドライン、音声、ビデオなど、頻繁に更新される情報を公開するために使用される標準化されたフォーマットの一種です。
- XML – 拡張可能なマークアップ言語は、人間が読むことも、機械が読むこともできる形式でドキュメントをエンコードするための一連のルールを定義するマークアップ言語です。WebサービスがXMLデータを処理するのに、XMLスキーマがよく使用されます。
- URL エンコードされたJSON – 予約文字のためにJSON のエンコードを使用するURL。
- CSV – カンマ区切りの値のリスト。
- 文字―テキストベースのキー値ペア。
- Twitter エンコードされた JSON – 予約文字のためにJSONのエンコードを使用したTwitterのURL。
- マルチパート/フォームデータ – ユーザーがフォームからファイルをアップロードできるようにしたい場合に、HTTP POSTリクエストメソッドでファイルを送信するためのエンコーディングタイプ。
- マルチパート/関連品 – 同じ情報を、他のフォームの他のボディパーツで表示する場合に使用。ボディ パーツは複雑度の高い順に並べられています。
- Oracle ADF – Oracle Application Development Framework に使用します。
- [認証ヘッダー] セクションで、次の図に示すようにヘッダーのキーを有効化または無効化します。
- パラメータ タブでは、下図のように 認証パラメータやヘッダーに含めるパラメータを選択またはクリアします。
- 保存をクリックしてAPIリクエストの設定を保存して閉めます。
プロセッサ
プロセッサでJavaScriptを使用してWebサービスへのAPIリクエストの前、途中、または後で、ユーザーセッションで収集されたマルチデータを操作することができます。プロセッサをAPIリクエストの前に定義して取り付ける場合、それはプリプロセッサーになります。プリプロセッサーはAPIリクエストの実行の前にセッションの変数から入力のパラメータと値の管理を可能にします。そのプロセッサはAPIリクエストの後に順次取り付けられた場合、ポストプロセッサとなります。ポストプロセッサを使用して、APIリクエストからペイロード応答キーにアクセスできます。キーにアクセスするには、以下のいずれかのポストプロセッサタイプを使用します。
- 解決:キーにアクセスするには、次のいずれかのポストプロセッサタイプを使用します。
- 展開 – ペイロードにあるデータ文字列を分ける。
- 抽出 – 複数のオブジェクトを持つペイロードにおいて、特定のオブジェクトへのパスを指定する。
- 割り当て – ペイロード応答の変数名を指定する。
プリプロセッサ
APIリクエストが実行される前に、プリプロセッサを使用して、セッション変数とパラメータでリクエストパラメータを管理することができます。プリプロセッサを定義する際には、処理のタイプをカスタム に設定し、表示されるJavaScriptエディターにコードを入力する必要があります。プリプロセッサは、カスタムタイプのみとなります。
プリプロセッサの追加
- APIリクエストページで、リクエストタブを展開し、プロセッサを追加をクリックします。
- 名前フィールドにプロセッサの名前を入力します。
- プロセッサのタイプドロップダウンリストで、プリプロセッサにカスタムを選択する必要があります。
- 必要に応じて、以下の構文でリクエストパラメータを操作するコードを追加します。
{ "fields": { "payloadFields": { // to set value to a payload field "key1": "value1", // Payload fields are not applicable for Alert tasks."key2": "value2"....}, "headerFields": { // to set value to a header field "key1": "value1", "key2": "value2"....}, "pathFields": { // to set value to a path field or query field."key1": "value1", "key2": "value2"....} } }
例として、次のコードスニペットは、APIオブジェクトのパスフィールドまたはクエリフィールドを設定するために使用できます。
var fields= {}; var pathFields = {}; pathFields.fullName = UserContext.get("firstName")+UserContext.get("lastName") fields.pathFields = pathFields; var finalObject = {}; finalObject.fields = fields; print(JSON.stringify(finalObject));
当該コードに、
firstName
およびlastName
がセッション変数として保存されていてJohn
およびSmith
がそれぞれに対応している場合、プリプロセッサからの JSON ペイロード応答は次のようになります。{ fields: { "pathFields": { "key": "fullName", "value": "John Smith" } } }
下記のキー値ペアーの例では、実のAPIリクエストコールの先に変数はセッション変数に設定されます。
var fields = {}; var pathFields = {}; var UserEmailID = UserSession.get("rtmEmail"); pathFields.userEmail = UserEmailID; fields.pathFields = pathFields; var finalObject = {}; finalObject.fields = fields; print(JSON.stringify(finalObject));
- 保存 をクリックして、プロセッサの追加ダイアログを保存して閉じます。
ポストプロセッサの追加
ご使用のWebサービスから1点以上のAPIリクエストで、Kore.aiポストプロセッサを使用してお望みのデータペイロードを取得することもあります。
カスタムポストプロセッサの定義
カスタムポストプロセッサを作成したい場合、以下の構文を使用して前のAPIリクエストの応答キーにアクセスできます。
payload[0].{ key }
JSON Syntax
{ "payload": { "key1" : "value1", "key2" : "value2" } }
例
var final = {}; var data = payload[0]; //Accessing the response of the previous API object data.title[0] = 'New value for key here'; final.payload = data; // Updating the response of the API object print(JSON.stringify(final)); // This step is mandatory
カスタムプロセッサの場合、前のコードで示されたように、最後の応答を示した先行コードとして印刷してください。そうでなければ、空の応答が返されます。以下の構文を使用します。
print(JSON.stringify( <<object>> ));
標準ポストプロセッサの設定
以下の手順で、標準ポストプロセッサを追加します。
- APIリクエストタブで、リクエストタブを展開し、プロセッサの追加をクリックします。
- Kore.aiは、ポストプロセッサ用のカスタムコードを作成する代わりに、使用できる標準ポストプロセッサのセットを提供します。処理のタイプフィールドに、以下の4つの標準プロセッサのタイプのうちの1つを選択します:
- 解決:1つのペイロード応答の結果を、2つ目のリクエストの入力として使用することができます。例として、プロセッサを追加をクリックして、プロセッサの名前を入力し、プロセッサのタイプを解決に、キーを変数の名前に設定し、最初のAPIリクエストからの変数を使用して投稿URLを定義します。For example, https://app.asana.com/api/1.0/projects/{project_id} that returns the id field in the payload response as:
..."id":80468818418144, <br/> "created_at":"2016-01-14T05:34:35.848Z", "modified_at":"2016-01-20T04:29:52.505Z", "owner":{ "id":73114591129714, "name":"jaganmohan.evuri" }, ...
それは次に変数入力として下記のPost URLのように: https://app.asana.com/api/1.0/projects/{id}/tasks?opt_fields=completed,modified_at また、ペイロードレスポンスで想定されるHTML コンテンツタ イプとHTML リクエス トメソッドも指定する必要があります。詳細については、タスクでのセッション変数とコンテキスト変数の使用を参照してください。
- 展開:分けとするデータが含む文字列のペイロードの場合。例として、プロセッサを追加をクリックし、プロセッサの名前を入力し、キーフィールドをデータなどに設定し、プロセッサタイプを展開に設定して、以下のコード例で
data
要素の内容を取り込み、配列の各アイテムを抽出します。{ "attribution": null, "tags": [], "type": "image", "location": null, "comments": { "count": 51, "data": [{ "created_time": "1453900980", "text": "43rd", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171728804843572377" }, { "created_time": "1453901222", "text": "44th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171730841379491107" }, { "created_time": "1453901997", "text": "45th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171737339782450909" }, { "created_time": "1453902304", "text": "46th and 47th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171739915923967873" }, { "created_time": "1453902638", "text": "48th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1171742713994497101" }, { "created_time": "1453964684", "text": "49th", "from": { "username": "venkataphani.ailavarapu", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2679234818", "full_name": "Phani" }, "id": "1172263199715314941" }, { "created_time": "1453964710", "text": "50th", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1172263415747136776" }, { "created_time": "1453964717", "text": "51st", "from": { "username": "kore_hyd", "profile_picture": "https://scontent.cdninstagram.com/t51.2885-19/11906329_960233084022564_1448528159_a.jpg", "id": "2056218675", "full_name": "Kore.ai Hyd" }, "id": "1172263474056350986" }] ...
- 抽出:複数オブジェクトが含むペイロードの場合、特定のオブジェクトにパスを指定することができます。例として、プロセッサの追加をクリックし、プロセッサの名前を入力し、キーフィールドを
data
に設定し、抽出する処理のタイプを選択して、次のペイロード応答でオブジェクトデータを使用します。{ "user": { "full_name": "Kore.ai Hyd", "id": "2056218675", "profile_picture": "https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg", "username": "kore_hyd" }, ...}, "likes": { "data": [{ "full_name": "kstream002", "id": "2100724876", "profile_picture": "https://instagramimages-a.akamaihd.net/profiles/anonymousUser.jpg", "username": "kstream002" } }, ...}
- 割り当て:割り当て プロセッサを使用すると、ペイロードにペイロード応答データのキーが含まれていない場合など、必要に応じて、ペイロード応答の変数名を指定することができます。例として、処理のタイプを割り当てに設定し、アウトプット変数フィールドで、たとえば、次のようなペイロードに対して、3つのオブジェクトの配列であるアウトプット変数を定義することができます。
[ { "Cost": "$0.00", "Desc1": "$150 bonus after $500 of purchases in the first 3 months from account opening.", "Desc2": "Earn unlimited cash back Earn unlimited 1.5% cash back on every purchase – it's automatic.Redeem for cash back – any amount, any time.", "Keywords": "weekend dining,online,groceries,fuel,rewards,rebate,365,allaround", "OfferName": "Freedom Unlimited", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.psdgraphics.com/file/credit-card.jpg", "id": "5b5195e264bbd800" }, { "Cost": "$95.00", "Desc1": "Pay 0 balance transfer fee when you transfer a balance during the first 60 days.", "Desc2": "Jumpstart your financial fitness Get an introductory fee for balance transfers, save on interest†, and get your free monthly credit score.", "Keywords": "privileges,rebate,health,wellness,great eastern,insurance,policy,installments,split,cashflo", "OfferName": "Premium Plus", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://i.imgur.com/rMOXYql.jpg", "id": "5caf2155873f89c8" }, { "Cost": "$10.00", "Desc1": "Pay 0 balance transfer fee when you transfer a balance during the first 60 days.", "Desc2": "Jumpstart your financial fitness Get an introductory fee for balance transfers, save on interest†, and get your free monthly credit score.", "Keywords": "privileges,rebate,health,wellness,great eastern,insurance,policy,installments,split,cashflo", "OfferName": "Frequent Flyer", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.moneychoice.org/wp-content/uploads/2016/01/credit-card-calculator-image.png.jpeg", "id": "c0b05bc3062658ee" } ]
アウトプット変数フィールドには、たとえば、配列を表す変数を
offers
のように指定します。もしUXプレビュー機能を使用した場合、Kore.ai からの応答は以下の通りです。{ "response": { "offers": [ { "Cost": "$0.00", "Desc1": "$150 bonus after $500 of purchases in the first 3 months from account opening.", "Desc2": "Earn unlimited cash back Earn unlimited 1.5% cash back on every purchase – it's automatic.Redeem for cash back – any amount, any time.", "Keywords": "weekend dining,online,groceries,fuel,rewards,rebate,365,allaround", "OfferName": "Freedom Unlimited", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://www.psdgraphics.com/file/credit-card.jpg", "id": "5b5195e264bbd800" }, { "Cost": "$95.00", "Desc1": "Pay 0 balance transfer fee when you transfer a balance during the first 60 days.", "Desc2": "Jumpstart your financial fitness Get an introductory fee for balance transfers, save on interest†, and get your free monthly credit score.", "Keywords": "privileges,rebate,health,wellness,great eastern,insurance,policy,installments,split,cashflo", "OfferName": "Premium Plus", "OfferType": "CreditCard", "Status": "1", "imageURL": "http://vignette3.wikia.nocookie.net/objectmayhem/images/5/52/Credit_card.png/revision/latest?cb=20130629150408", "id": "5caf2155873f89c8" } ] } }
アウトプット変数が
offers
に設定されていると、ボットビルダーでresponse.offers
として、たとえば、以下のようにタスク応答オブジェクトで使用することができます。print(JSON.stringify(response)); var data = response.offers for (i = 0; i < data.length; i++) { print('<a href="' + data[i].imageURL + '" target="_blank">' + data[i].OfferName + '</a><br>'); print(data[i].Desc1) print('<br>'); print('<br>'); print('Cost: ' + data[i].Cost) print('<br>'); if (i < data.length - 1) { print('<br>'); print('<br>'); } }
- 解決:1つのペイロード応答の結果を、2つ目のリクエストの入力として使用することができます。例として、プロセッサを追加をクリックして、プロセッサの名前を入力し、プロセッサのタイプを解決に、キーを変数の名前に設定し、最初のAPIリクエストからの変数を使用して投稿URLを定義します。For example, https://app.asana.com/api/1.0/projects/{project_id} that returns the id field in the payload response as:
- 追加をクリックしてAPIリクエストを保存してから別のAPIリクエストを作成するか、追加と終了をクリックしてAPIリクエストを保存してからダイアログをクローズ閉じます。
複数のAPIリクエストの場合、リクエストをシーケンシャルの並べで並べ直してから全体のデータ応答を取得するようにしてください。例として、ワークスペースのリストを依頼し、次にプロジェクトのリストを依頼し、最後にユーザーのリストを依頼する必要があるかもしれません。繰り上げ アイコンと繰り下げ アイコンを使用して、APIリクエストの順番を入れ替えます。
サンプル応答の追加
- 認証 – アクションタスクに必要な場合、APIにアクセスするための認証を定義する必要があります。たとえば、基本認証、OAuth、またはAPIキーを使用します。詳細は、APIリクエストタブ – 認証設定をご覧ください。
- WSDL URL – WSDLデータを含むURLを定義します。URLを取得すると、WSDLを基にして利用できる操作リストから選択し、ユーザー入力フィールドをカスタマイズすることができます。詳細は、WSDL URLの定義をご覧ください。
- コネクタを使用したアクセス -ボットプラットフォームがオンプレミスでインストールされていて、Kore.aiコネクタのエージェントを使用したい場合に指定します。詳細は、コネクタを使用したアクセスをご覧ください。
- 応答サンプル – アクションタスクのペイロードで受信すると想定されるキー/値のペアを定義します。提供したキー・値のペアは、エンドユーザーに表示するデータの処理用として、ドロップダウンの選択肢として使用できます。詳細は、アクションタスクに応答サンプルを追加をご覧ください。
- API リクエストタブで、WSDL URLセクションを展開します。
- SOAPリクエストのリクエストタスクの設定を開始するには、WSDL URL フィールドにSOAP WSDLのURLを入力します。
- WSDLの説明を手に入れるをクリックします。WSDLにおいて定義されている 使用可能な演算子 のリストが開きます。
- タスクで使用するSOAPリクエストの選択をクリックします。Kore.aiは、ユーザー入力が必要な場合、1つ以上の[アクションタスク]フィールドを自動的に入力します。
[SOAPアクションタスク]フィールドのカスタマイズ
WSDLから使用可能なオペレーション を1つ以上選択した後、Kore.aiが提供するデフォルトの入力フィールドをカスタマイズすることができます。デフォルトの[アクションタスク]フィールドをカスタマイズするには、以下の手順に従います。
- カスタマイズしたいアクションタスクフィールドの編集をクリックします。アクションタスクフィールドのセットアップダイアログが開きます。
- 入力を収集するエンドユーザーフィールドを定義するには、次のテーブルに説明されているように、アクションタスクフィールドのセットアップダイアログでパラメータの値を指定します。
フィールド名 説明 フィールド タイトル エンドユーザーインターフェースに表示されるタスク入力フィールドのタイトル。例: 国。 ヘルプのヒント ヘルプテキストはタスクの下に表示されています。そのタスクは、たとえば「天気を知りたい国の名前を入力する」というタスクを説明するタイトルを設定することです。 フィールドキー 収集するエンドユーザーの入力値を表す、読み取り専用キーです。例:国. フィールドタイプ キーの値に割り当てるリクエストオブジェクト用のユーザー入力を収集するためにエンドユーザーインターフェースに表示されるタスク入力フィールドのタイプを指定します。デフォルト設定はテキストボックスですが、以下のいずれか1つをカスタマイズできます。 - 日付 – フォーマットフィールドが表示され、エンドユーザーが自分のアカウントにタスクが設定される際に定義する日付フォーマットの構文を選択できます。日付フォーマット選択のドロップダウン リストから、次のうちの1つを選択します。
- dd-MM-YYYY – 例:16-05-1999
- MM-dd-YYYY – 例:05-16-1999
- dd-MM-YY – 例:16-05-99
- YYYY-MM-dd – 例:1999-05-16
- URL – 正しい URL 構文のためのフィールド検証を含む、エンドユーザーによる URL 入力用のテキスト ボックスを表示します。プレースホルダーフィールドには、テキストボックスに表示されるヘルプヒントを入力します。例:こちらにWebサイトのURLを入力してください。
- テキストボックス―エンドユーザーにタスクの入力フィールドとして文字を入力するためのテキストボックスを表示します(通常は数語程度)。プレースホルダーフィールドには、テキストフィールドに表示されるヘルプヒントを入力します。例:刺しゅうしたい名前のタイプ。
- 静的ドロップダウン – エンドユーザーに選択肢のドロップダウン リストを表示します。オプションの追加をクリックして以下のパラメータでエンドユーザーに表示するアイテムのリストの追加を始まります:
- オプション名 – エンドユーザーに表示されるオプションの名前です。
- オプション値―アプリケーションに返すオプション名という値と示します。
- デフォルト値 – 1つ以上のオプションが定義されている場合、オプションのデフォルト値を選択します。
- 検索可能 – エンドユーザーがこのフィールドにテキストを入力するときに、ダイナミック検索と表示を有効にするか、あるいは一致がない場合に、フリーフォームのエントリを許可するかを選択します。
保存をクリックします。アイテムを追加する場合、オプションを追加をもう一度クリックします。オプションのアクション列において、オプションを編集または削除します。
- 動的ドロップダウン – ボット用のURLからの応答に基づいて、実行時に動的に生成されるドロップダウンリストを表示します。例:JIRAタスク通知用のプロジェクトリスト。以下の動的に配置されるドロップダウンのプロパティを定義します。
- エンドポイントURL – ボットのエンドポイントURL。例:https://app.asana.com/api/1.0/workspaces。
- エンドポイントのコンテンツタイプ – 指定されたエンドポイントURLから想定されるコンテンツタイプ。以下から1つ:JSON、RSS、XML、URLエンコードのJSON、CCV、文字、またはTwitter エンコードのJSON。
- エンドポイントメソッド – 以下のうちの1つ:
- GET – [タスク]フィールドのHTTPリクエストGETメソッドを指定します。
- POST – [タスク]フィールドのHTTPリクエストPOSTメソッドを指定します。
- 応答パス – 希望するドロップダウンリスト値を含む応答内のパス。例:データ。
- ラベルキー – ドロップダウンオプションのラベルのキー。例:名前。
- オプションの値キー – ドロップダウンオプションの値のキー。例:ID。
- ペイロードフィールドの追加 – クリックすると、動的ドロップダウンのオプションとして、応答ペイロードから1つ以上のフィールドが追加されます。各ペイロードフィルドについて、ペイロードフィールドのキーとペイロードフィールドの値を入力し、保存をクリックします。アクション列でペイロードフィールドを編集または削除します。
- 検索可能 – エンドユーザーがこのフィールドにテキストを入力するときに、ダイナミック検索と表示を有効にするか、あるいは一致がない場合に、フリーフォームのエントリを許可するかを選択します。
- Textarea – エンドユーザーがタスク入力としてテキスト(通常は数センテンス)を入力するためのテキストエリアボックスを表示します。プレースホルダーフィールドに、テキストボックス内でエンドユーザーに対して表示するヘルプヒントを入力します。
- 先行入力 – タスクに定義されたURLからの応答を基にした検索結果に一致する3つ以上の文字をユーザーが入力すると、実行時のエンドユーザーに対して動的に配置されたドロップダウンリストの選択肢が表示されます。例:JIRAのタスク通知メッセージのプロジェクトリスト。以下の動的に配置されるドロップダウンへのプロパティを定義します。
- エンドポイントURL – ボットのエンドポイントURL。例:https://app.asana.com/api/1.0/workspaces。
- エンドポイントのコンテンツタイプ – 指定されたエンドポイントURLから想定されるコンテンツタイプ。以下から1つ:JSON、RSS、XML、URL エンコードされた JSON、CCV、テキスト、Twitter エンコードされた JSON、Multipart/Form-data または Multipart/Related。
- エンドポイントメソッド – 以下のうちの1つ:
- GET – [タスク]フィールドのHTTPリクエストGETメソッドを指定します。
- POST – [タスク]フィールドのHTTPリクエストPOSTメソッドを指定します。
- 応答パス – 希望するドロップダウンリスト値を含む応答内のパス。例:データ。
- ラベルキー – ドロップダウンオプションのラベルのキー。例:名前。
- オプションの値キー – ドロップダウンオプションの値のキー。例:ID。
- ペイロードフィールドの追加 先行入力フィールドのオプションとして、 応答ペイロードから 1 つ以上のフィールドをクリックして追加します。各先行入力のフィールドオプションについて、ペイロードフィールドのキーとペイロードフィールドの値を入力し、保存をクリックします。アクション列でペイロードフィールドを編集または削除します。
- 編集可能―先行入力の検索結果が一致しない場合のオプションとして、エンドユーザーがフィールドに自由にテキストを入力できるようにします。
- メール – エンドユーザーがメールアドレスを入力するためのテキストボックスを表示します。プレースホルダーフィールドに、エンドユーザーに表示するヘルプヒントをテキストボックス内に入力します。
- 日付と時間 – エンドユーザーが日付と時間を入力するためのテキストボックスを表示します。フォーマットフィールドに、エンドユーザーに表示される日付のテキストボックスに、想定する日付や時間のフォーマットを入力します。日付フォーマットの選択 のドロップダウンリストで、日付と時間のフォーマットを選択します。
- タイムゾーン―操作システムの設定に基づくタイムゾーンのドロップダウンリストを表示します。
- 位置―エンドユーザーが地理的位置を入力するためのテキストボックスを表示します。例:Orlando, FLまたは32801。
- ネスト化フォーム – 親入力フィールドの下に、エンドユーザーの入力フィールドをネスト化形式で表示します。ネストされたフォーム入力フィールドには、次のフィールドを指定します。
- 配列要素型 – 親となる入力フォーム要素のデータ型を選択します。
- ネスト化フォームフィールドの追加 – 1 つ以上のネスト化フォーム フィールドをクリックして追加します。
- ファイル アップロード – アップロードするファイルの検索や選択ができるエンドユーザー制御を表示します。クリックして、ファイルアップロードペイロード キーを入力します。ファイルアップロードペイロードキーが定義されている場合、ファイルアップロードペイロードフィールド値のドロップダウンリストで以下のうちから1つ選択してください。
- ファイル名
- ファイルサイズ
- ファイルコンテンツタイプ
データタイプ ユーザー入力タイプのうちの 1 つを選択します。 - 文字列 – ユーザーは任意の一連の数字、文字や特殊文字を入力することができます。
- 数字 – ユーザーは数字を入力することができます。特殊文字は使用できません。
- ブール値 – ユーザーは true または false のブール値を入力できます。
- メール – ユーザーは有効なメール アドレスを入力できます。
- オブジェクト – ボットからのデータは、JSONオブジェクトとして受信できます。例:次のように定義された位置の詳細として、 “location” : { “lat” : 17.4374614, “lng” : 78.4482878 } ここで、リクエストチェーンやタスクリクエストのプロパティを、 location.latおよびlocation.lngと表記します。
- 配列 – ユーザーは、カンマで区切った値のリストをボットに渡すことができます。例として、グーグルカレンダーでは、複数の参加者のデータのパスは: “attendees”: [“user1”, “user2”, “user3”] 選択した場合、エンドユーザーの入力の配列のタイプを以下のいずれかに指定します。
- 文字列
- 数字
- ブール値
- メール
- 配列
- 日付
- 日付―ユーザーは完全な日付を入力するか、日付の選択肢から選択することができます。
プレースホルダ 入力テキストボックスの下に表示されるテキストで、ユーザーがフィールドを定義するのに役立ちます。このフィールドは特定のフィールド タイプに表示されます。 可視性 タスクの入力フィールドをエンドユーザーから見えるようにするか、見えないようにするかを指定します。可視性フィールドはカスタムフィールドに設定することもできます。ここでは、データはユーザーから取得されますが、クエリパラメータやペイロードフィールドとしては使用されません。例として、JIRAボットの場合、以下のように@mentionタグを使用してチケットにコメントを投稿します。「@Mike、こちらの問題について調べてください」 JIRA APIでコメントを投稿するには1つのクエリフィールドおよび1つのペイロードフィールドが必須です: - IDの発行
- コメント
可視性フィールドをカスタムに設定すると、JIRA APIを使用して
@Mike
と呼ばれるユーザーのユーザー情報をキャプチャし、データを取得してcomment
フィールドの値に追加することができますが、ペイロードフィールドやクエリフィールドとしては使用できません。可視性フィールドのデフォルト設定は表示です。必須 タスク設定の構成を保存するために、エンドユーザーがこの設定を定義する必要があるかどうかを選択します。 キーの置き換え Kore.ai によるキーの転置を無効にするかどうかを選択します。デフォルト設定では、Kore.ai ははキー/値のペアを置換します。たとえば、 "parameter":"value"
は Kore.ai によって"parameter:{value:"actualValue"}
に置換されます。このオプションを選択すると、キーはKore.aiによって転置されず、受信した応答として渡されます。 - 日付 – フォーマットフィールドが表示され、エンドユーザーが自分のアカウントにタスクが設定される際に定義する日付フォーマットの構文を選択できます。日付フォーマット選択のドロップダウン リストから、次のうちの1つを選択します。
- 追加して続行をクリックすると、[タスク]フィールドが保存され、別の アクションタスクフィールドが作成されます。あるいは、追加して終了をクリックして、アクションタスクフィールドを保存してからダイアログを閉じます。
- API リクエストのタブから、コネクタでアクセスセクションを開きます。
- コネクタを使用したアクセスフィールドで、はいを選択し、Kore.aiコネクタエージェントを使用してKore.ai ボットへのアクセスを有効にします。このオプションは、Kore.ai コネクタ エージェントが企業の社内ネットワークで構成、有効化されている場合に表示されます。詳細については、Kore.ai Connectorの使用をご覧ください。
サンプル応答の追加
ステップ 4:ボットレスポンスの定義
ボットレスポンスは、エンドユーザーにタスクのステータスまたは完了を知らせるメッセージを提供します。タスクのボットレスポンスタブでは、APIリクエストのペイロードからエンドユーザーに表示するメッセージを定義できます。すべてのチャネルのデフォルトレスポンスを定義し、オプションでチャネル固有のメッセージを定義することができます。ボットの通知タスクの一般タブの設定項目を入力して通知タスクのAPI リクエスト チェーンを設定すると、通知タスクの結果をエンドユーザーにどのように表示するかを定義できるようになります。このセクションでは、通知タスクの応答を設定する方法について説明します。警告タスクの応答オブジェクトを定義するには、2つのセクションがあります。
- レポートテンプレートの定義 – 一部のタスクでは、テーブルや連絡先カードなどのテンプレート、または天気予報などの特定のメッセージタイプ用にフォーマットされたテンプレートを使用して、レポートデータをペイロードの応答を表示できるリンクとしてエンドユーザーに表示したい場合があります。
メモ:このセクションは、Webhookアラートタスク、アクションタスク、またはRSSアラートタスクには使用されません。
タスクにリンクを追加して詳細情報やレポートを提供するには、エンドユーザーアプリケーションでテーブル、天気予報、連絡先カードなどのレポートを表示するための リンクと情報を定義します。タスクのレポートテンプレート定義を定義することから始めるには、下図のようにボットレスポンスタブで、(オプション)レポートテンプレート定義セクションの展開アイコンをクリックします。 タスクのレポートリンクを有効にするには、はいを選択して、前図のレポートテンプレート定義セクションを表示します。タスクの応答メッセージにリンクを追加すると、ボットのエンドユーザーはそのリンクを選択して、SalesForceボットの販売機会終了に関する値の表などの詳細情報を手に入れることができます。タスク応答メッセージ内に、エンドユーザーが起始のタスク応答メッセージから追加の情報のレポートをリクエストするためのリンクを作成するには、以下のパラメータを定義してください。- リンクタイトル -タスク投稿でエンドユーザーに表示するリンクテキスト。例:ショッピングカートの表示。
- ヘッダー – レポートがエンドユーザーに表示されたときに表示されるタイトル。例:これらはショッピングカート内のアイテムです。
- 詳細 – ショッピングカートの中身を確認して、注文の準備ができたら続けるをクリックします。このような、レポートの内容を説明するレポートのヘッダー直下に表示するエンドユーザーのヘルプ情報です。
- テンプレート – タスク応答のデータを表示するためのフォーマットテンプレートを以下から1つ選択します。各タイプには、列名、キーマッピング、データ型、およびテンプレート固有のオプションを定義します。
- テーブル – テーブル形式でデータが定義された列に表示されます。テーブルの各マッピングテンプレートは、並べ替え可能、画像で表示、およびリンクで表示に設定することができます。詳細は、テーブルレポートの定義をご覧ください。
- 固定列テーブル – 1つ以上の固定列のテーブル形式でデータが表示されます。固定列テーブルテンプレートの各マッピングは、並べ替え可能、固定列で表示、画像で表示、およびリンクで表示に設定することができます。詳細は、固定列テーブルレポートの定義をご覧ください。
- カード レイアウト – 連絡先カード形式のデータを表示します。カード レイアウトテンプレートの各マッピングは、並べ替え可能、画像で表示、およびリンクで表示に設定することができます。詳細は、カードレイアウトレポートの定義をご覧ください。
- 天気情報 – 天気サービスの応答ペイロードの日付を定義することができます。天気情報テンプレートの各マッピングは、並べ替え可能、画像で表示、およびリンクで表示に設定することができます。詳細は、天気予報レポートの定義をご覧ください。
- アクション付きのカード レイアウト – 各アイテムにマッピングされたタスク リンク付きのアイテムのリストを表示します。詳細は、アクションのカードレイアウトレポートの定義をご覧ください。
- グループ化されたカードレイアウト – 特定のフィールドでグループ化されたアイテムのリストを表示します。詳細は、グループ別のカードレイアウトレポートの定義をご覧ください。
- アクション付きのショッピングカートレイアウト – 各アイテムにマッピングされたタスク リンク付きのアイテムのリストを表示します。詳細は、アクションのショッピングカートレイアウトレポートの定義をご覧ください。
- メッセージの定義 – このセクションでは、Webhookによって送信されたペイロードによって通知が表示された際に、エンドユーザーに表示されるデータの見え方を定義します。Defining Message Definitionタスクに対して、2種類のボットレスポンスを定義することができます。
- 全チャネルのデフォルト: API リクエストと定義済みのプロセッサからのペイロード応答に基づいた全チャネルのデフォルトタイトルとメッセージ応答を作成します。Kore.aiシステム、カスタム変数、応答サンプルに由来する独自の入力および可変キーのセットとともに、応答オブジェクトから混合したデータを作成することができます。メッセージは通常、整形された HTML メッセージとして表示され、リクエスト オブジェクト データからの ID 番号や件名の変数を 1 つ以上含んでいます。
- チャネル固有の応答: Facebook Messenger、Skype、SMS、Web/モバイル SDK など、特定のチャネル用にボット応答メッセージをカスタマイズすることができ、選択したチャネルに事前定義したメッセージ テンプレート (テーブル、リスト、グラフなど) を適用することもできます。
メッセージ定義エディター機能
アクションタスクのエディターを開くには、ボットレスポンス > メッセージ定義へ移動します。メッセージ定義エディターは3つのタブを使用して、以下の機能を提供します。
- 標準文字: 基本エディターの制御およびHTMLのマークアップに介して、変数キーで応答を定義およびフォーマット化ができます。テキストを入力し、太字、斜体、ヘッダースタイル、ハイパーリンク、順序付きリストと順序なしリスト、および行の挿入用のボタンを使用してフォーマット化します。
- JavaScript: エンドユーザーのタスク応答メッセージを処理するカスタム コードを追加して変数を宣言し、変数キーを使用して、サードパーティー アプリケーションと対話できるようにします。
- プレビュー: ボットのユーザーが見るアウトプットメッセージの表示サンプルを、マークアップ付きで表示します。
可変キーの追加
以下の手順に従って変数キーを追加してください:
- 標準テキストモードや JavaScript モードで変数キーを追加するには、変数を追加したい場所にカーソルを合わせて [可変キー] をクリックします。
- リクエスト/応答キーダイアログで、挿入したい変数を含むキーノードのタイプを開きます。
- のような、追加する変数を選択して
response.data.id
[OK]をクリックします。
標準キー
標準キーは、以下のような再利用可能なデータ用のKore.ai可変プレースホルダーです。
- _labels_: GUID の代わりにフレンドリラベルを返します。例として、WebサービスAPIからユーザーデータを要求された場合、返されるプロジェクトやワークスペースのIDはGUIDとなります。
_labels_
キーを使用して、GUID ではなく、ユーザーフレンドリーのGUID名をエンドユーザーに表示することができます。Kore.aiでは、次の例に示すように、ドロップダウンコントロールが_labels_
キー応答を格納します。{ "_labels_": { "15379386734832": "roadlabs.com", "26377329985341": "Test Project", "workspace": "roadlabs.com", "project": "Test Project" }, "_fields_": { "workspace": "15379386734832", "project": "26377329985341" } }
応答で
_labels_
キーを使用するには、:print('<a href="https://app.asana.com/0/' + workspace.id + '+_labels_[workspace.id]);
- _tenant_ – 定義済みのエンタープライズ向けのテナントを返します。例として、 JIRA には、URL が https://koreteam.atlassian.net/browse/BBF-3265 となるよう、テナント koreteam が必要です。以下のように、
_tenant_
キーを使用して、タスク応答へのリンクを作成することができます。var title = request.fields.issuetype.name + ' <a href ="https://'+ _tenant_ + '/browse/' + response.key + '" target = "_blank">' + request.fields.summary + '</a> has been created.';
- _fields_ – エンドユーザーが提供する、ペイロードの応答の一部ではないタスク フィールドの入力を返すために使用します。たとえば JIRA タスクでは、エンドユーザーはワークスペース名を入力するように促されます。
_fields_
キーを使用して、エンドユーザーの入力を格納します。_fields_["workspace"]
- _last_run – ISO 8601形式を使用して、WebサービスのポールのUTC日付のタイムスタンプを返すために使用されます。例:2016-03-05T12:44:38+00:00。例として、Webサービスリクエストがペイロードレスポンスであらゆるアクティビティを返すととすれば、
_last_run
キーを用いて、値の前後に表示される結果をフィルタリングすることができます。_last_run
セッションキー
セッションキーは、単一セッションインスタンスにおけるユーザーデータ用のKore.ai可変プレースホルダーです。
- UserContext.get(“_id”) –Kore.aiのユーザー ID。
- UserContext.get ( “emailId )- ユーザーIDと関連するメールアドレス。
- UserContext.get(“lastName”) –ユーザーの姓。
- UserContext.get(“firstName”) –ユーザーの名。
- UserContext.get(“profImage”) –ユーザーの画像またはアバターのファイル名。
- UserContext.get(“profColor”) –ユーザーのアカウントの色。
- UserContext.get(“activationStatus”) –ユーザーのアカウントステータス。
- UserContext.get(“jTitle”) –ユーザーのタイトル(定義されている場合)。
- UserContext.get(“orgId”) –ユーザーアカウントの組織ID(定義されている場合)。
- UserContext.get(“customData”) – 開発者が定義したカスタム キー。
- UserContext.get(“identities”) – ユーザーの代替ID(定義されている場合) 。
追加のセッションキーはボットタスクの定義そしてそのタスクに使用可能のキーのコンテキストの次第に、使用可能になります。セッションとコンテキストキーについての詳細については、タスクのセッション変数とコンテキスト変数を使用を参照してください。
応答キー
応答キーはAPI応答タブにある応答サンプルのテキストから直接解析されます。応答キーは、定義されているレスポンスサンプルに応じて異なります。 次のリストは、Asanaタスクで使用できる応答キーの例です。
request.data.workspace request.data.projects request.data.name request.data.notes labels.498346170860 labels.30887755353556 labels["data.workspace"] labels["data.projects"] _tenant_ response.data.id response.data.created_at response.data.modified_at response.data.name response.data.notes response.data.completed response.data.assignee_status response.data.completed_at response.data.due_on response.data.due_at response.data.workspace.id response.data.workspace.name response.data.num_hearts response.data.parent response.data.followers[0].id response.data.followers[0].name response.data.hearted response.data.assignee response.data.projects[0].id response.data.projects[0].name response.data.memberships[0].project.id response.data.memberships[0].project.name response.data.memberships[0].section
レポート キー
レポートキーとは、Kore.ai可変プレースホルダーとして、レポートテンプレート定義およびボットレスポンスを使用してユーザーがクリックできるメッセージに追加の情報へのリンクを表示します。
- reportInfo.reportLink – このタスクのレポートテンプレート定義」セクションで定義されたリンク。
- reportInfo.reportTitle – このタスクの レポート テンプレート定義で定義されたタイトル。
応答のプレビュー
メッセージエディターで プレビュー をクリックすると、次のいずれかのオプションを使用して応答のプレビューが生成されます。
- テストとプレビュー – ボットのタスク設定ページを開いてタスク設定と認証を定義し、Asana のようなサードパーティーの Web サービスにより生成された応答のプレビューを表示します。
- サンプル応答でプレビュー – タスクのAPIリクエストタブの応答サンプル セクションで定義されたキーと値のペアで提供されたサンプルデータを使用してプレビューを生成します。
カスタム JavaScript の応答の例
以下の例では、JavaScriptを使用して、タスクの応答メッセージが送信されたときにエンドユーザーにアウトプットメッセージを表示するタイトルを投稿と説明を投稿セクションを定義する応答オブジェクトを示しています。以下の例では、descと書かれた変数は、JSON応答にキャプションの値が定義されている場合にのみ表示されます。
var desc = (caption !== "undefined" ? caption : "")
次の例では、タスクのタイトルを使用したクリック可能なURLが、タスクの応答メッセージに表示されます。
var tasklink = '' + title + '';
この最後の例では、リンク変数は、動画または写真のいずれかのタイプに依存します。タイプに応じて、適切なリンクが表示されます。
var link = ""; switch (type) { case "video": var video = (typeof(video_url) != "undefined") ? video_url : permalink_url; link = '<video controls><source src ="' + video + '" type="video/mp4"></video>'; break; case "photo": link = '<img src="' + image_permalink + '"></img>'; break; }
タスクのペイロード応答に基づいて、JavaScript タブでタスク固有の要求を処理するカスタムJavaScriptを作成することができます。
チャネル固有のボットレスポンス
タスク応答メッセージは、応答メッセージが表示されるチャネル、たとえばKore.ai Messengerクライアント、電子メール、テキストメッセージなどに依存している場合があります。デフォルトでは、 すべてのチャネルのデフォルトで設定した応答メッセージがすべてのチャネルに送信されます。ただし、デフォルトの応答ではなく、単一や複数の20以上のサポートチャネルに対して、特定の応答を定義して、そのチャネルのエンドユーザーに表示することができます。
- 特定のチャネルの応答レスポンスメッセージを定義するには + チャネルの追加 をクリックして、チャネルを選択ドロップダウンリストを表示します。
- たとえば、Kore.aiなどのチャネルを選択して、JavaScriptタブでチャネルの応答を設定します 。
各チャネルでは1つの応答のみ定義できます。以下のJavaScriptの例は、チャネル別にKore.aiのデフォルトフォーマットテンプレートを上書きする方法を表しています。
メモ:以下のキーでデフォルト値に戻します。response.message – デフォルトのメッセージを文字列で返します。response.message.choices – 選択肢や確認メッセージのタイプを配列で返します。
- Slackチャネルの上書き例
var message = {}; var attachments = []; var attachment = { 'text': "Exception occurred during API execution", 'color': '#FFCC00', 'attachment_type': 'default' }; attachments.push(attachment); message.attachments = attachments; print(JSON.stringify(message));
- FaceBookチャネルの上書き例
var message = { text: response.message }; var buttons = []; for (var i = 0; i < response.choices.length; i++) { var choiceItem = response.choices[i]; if (choiceItem.length > 20) { choiceItem = choiceItem.substring( 0, 18) + '..'; } var element = { content_type: 'text', title: choiceItem, payload: choiceItem }; buttons.push(element); } message.quick_replies = buttons; print(JSON.stringify(message));
- メールチャネルの上書き例
var message = {}; var text = response.message + ' <br> '; for (var i = 0; i < response.choices.length; i++) { text = text.concat( '<u> + response.choices[i] + ' < /u> <br>'); } message.text = text; print(JSON.stringify(message));
- SMSチャネルの上書き例
var message = {}; var indexArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' ]; var text = response.message + '\\n'; for (var i = 0; i < response.choices .length; i++) { text = text.concat(indexArray[i] + ') ' + response.choices[ i] + '\\n'); } message.text = text; print(JSON.stringify(message));