2017-11-28 20 views
1

私はDialogflowアプリケーション(Googleのアクション)を実装しようとしましたが、これまでのところうまく機能しています。しかし、node.jsを介してアクションパラメータ/コンテキストを定義することができるかどうかは知っていますか?Dialogflowで動的に「リンクアウト候補」を作成する方法はありますか?GoogleのDialogflow/Actions:リンクアウト候補の動的応答データを提供

詳細:ユーザーからいくつかのパラメータを要求し、URLのセット(何らかの種類のデータベースとして実装されています)にマップし、結果URLをjsonレスポンスに書き込みます。目標:Dialogflowの「レスポンス> Googleアシスタント> URLの入力」で、これらのレスポンスURLを$ url、#deeplink.url(または同様のもの)として含めます。

これはどのような方法でも可能ですか?前もって感謝します。

更新:私は豊かな応答を構築するアプローチもテストしましたが、うまくいかないようです。例:

const richResponse = app 
.buildRichResponse() 
.addSimpleResponse('Flight from ' + origin + ' to' + destination) 
.addSuggestions("Find your flight:") 
.addSuggestions("Basic Card", "List", "Carousel") 
.addSuggestionLink("Search now", url); 

(アプリ)を「行動対グーグル(必要DialogflowAppのインスタンスである)

しかし、彼は "addSimpleResponse" の後に停止しているようです。

+0

あなたは何をしようとしているのかよく分かりませんが、アシスタントの「豊かな反応」を見てみるといいでしょう。 – Bart

+0

インテントを作成する> Webhookを統合>サーバーでビジネスロジックを実行する>応答を返す。完了! –

+0

これは私が最初に試したことですが、どういうわけかそれはうまくいきませんでした。提案されたリンクを含むRichResponseの例がありますか? – Vrankey

答えて

2

はい。 Webhookにcontextを作成し、そのコンテキストに必要な値を含むパラメータを含めることができます。あなたの例を使用するには、コンテキスト "deeplink"を作成し、 "url"という名前のパラメータにリンク先のURLを設定します。リンクアウトの提案と基本カードには、リンクに加えてタイトルやウェブサイトの名前が必要なので、おそらく "タイトル"パラメータも必要です。

コンテキストを作成するのはかなり簡単ですが、JSONをどのように生成するかによって異なります。あなたはNode.jsのためのアクション・オン・Googleのライブラリを使用している場合、あなたはresponse JSON yourselfを作成している場合は、コンテキストにcontextOut配列を持つことになります

var contextParameters = { 
    title: "Example Website!", 
    url: "http://example.com/" 
}; 
app.setContext("deeplink", 1, contextParameters); 

ようなコマンドでそれを作成しますあなたが設定したいオブジェクト。 JSONのこの部分はその後、リンク切れや基本的なカードの分野では、あなたが#deeplink.title#deeplink.urlとしてそれらを参照します

"contextOut": [ 
    { 
    "name": "deeplink", 
    "lifespan": 1, 
    "parameters": { 
     "title": "Example Website!", 
     "url": "http://example.com/" 
    } 
    } 
] 

ようになります。リンク切れの場合は、次のようになります。

enter image description here

をしかし、あなたは履行をやっていると、時にはそれが一部としてそれらを設定するのではなく、ウェブフックでVUIとGUI要素を生成しやすくなりますDialogflowビルダーのこれは、生成するカードやカルーセルアイテムの数が異なる場合に特に当てはまります。

​​は、サンプルJSONとnode.jsコードと共に返されるさまざまなUI要素を提供し、それぞれを生成します。これらはDialogflowがGoogleのアクションの応答タブで提供するのと同じ要素です。代わりにWebhookからそれらを生成することができます。

+0

詳細な回答ありがとうございました!しかし、これはまさに私がやろうとしていることですが、DialogflowにあるJSONの応答にコンテキストが表示されません。 – Vrankey

+0

あなたの質問を更新して、あなたが行ったことを正確に示すスクリーンショット、コンテキストの設定方法を示すコードサンプル、Dialogflowから返されるJSONを含めてください。 – Prisoner

関連する問題