2017-11-17 14 views
1

私のアプリケーションからDialogFlowに送信されたリクエストに余分な情報を追加しようとしています。私はSending Parameters in a Query Requestからそのイベントをトリガーしてインテントを呼び出すデータを送信する可能性を認識しており、既にそのメソッドを他の機能に使用しています。余分なフィールドをリクエストに追加する方法DialogFlow以前のApi.aiに送信されたJSON

基本的に、userIDの値を追加しようとしています。この値をDialogFlowに取得する必要があります。私はでセッションのトラックを維持していますので、を使用してIDの値を取得しています。同様

$.ajax({ 
    type: "POST", 
    url: baseUrl + "query?v=20150910", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    headers: { 
    "Authorization": "Bearer " + accessToken 
    }, 
    //This folllowing line is the modified part: 
    data: JSON.stringify({ 
    query: text, 
    lang: "en", 
    sessionId: "somerandomthing", 
    userId: "100" 
    }), 
    success: function(data) { 

    }, 
    error: function() { 
    setResponse("Internal Server Error"); 
    } 
}); 

そして、この1:私はリクエストで次の操作を実行しようとしてい

$.ajax({ 
    type: "POST", 
    url: baseUrl + "query?v=20150910", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    headers: { 
    "Authorization": "Bearer " + accessToken 
    }, 
    //This folllowing line is the modified part: 
    data: JSON.stringify({ 
    query: text, 
    lang: "en", 
    sessionId: "somerandomthing", 
    userId: "100", 
    parameters: { 
     userId: "100" 
    } 
    }), 
    success: function(data) { 

    }, 
    error: function() { 
    setResponse("Internal Server Error"); 
    } 
}); 

私はそれに基づいてback-endにいくつかのデータを処理するための要求でその値を必要とします。誰かがそれをやる方法を知っているか、より良いアプローチの提案があればそれは大いに感謝するでしょう。

DialogFlowフォーラムには、これに関するディスカッション・ポストがありますが、解決策はまだありません。機能が利用できないか、または文書化されていない可能性があります。Link 1Link 2Link 3

答えて

1

私はDialogflowの@Svetlanaの助けを借りてこの問題を解決しました。オリジナルのポストはHereであり、ここではNode.jsの中のバックエンドでJavaScriptアプリケーションからの例です:

あなたが好きなあなたの要求をフォーマットします:

  $.ajax({ 
       type: "POST", 
       url: baseUrl + "query?v=20150910", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       headers: { 

        "Authorization": "Bearer " + accessToken 
       }, 
       data: JSON.stringify({originalRequest: {data: {exampleMessage: 'Test'}}, query: text, lang: 'en', sessionId: 'somerandomthing'}), 
       success: function (data) { 

       }, 
       error: function() { 
        setResponse("Internal Server Error"); 
       } 
      }); 

とあなたが値にアクセスしますウェブフック付き:

var exampleMessage = req.body.originalRequest.data.exampleMessage; 

または

var exampleMessage = req.body.originalRequest.data['exampleMessage']; 

ホップこれは役に立ちます。

関連する問題