2016-12-02 59 views
0

在我的示例中, 如果用戶單擊按鈕「是」將返回對話文本。但是,我希望它從我的輸出中返回一個值,從我的AJAXPost示例返回,該示例目前僅來自「alert (output.request.number)」。 如何製作?按照代碼:如何在我的API代碼中使用Watson獲取文本/返回(JSON)?

在談話內容:#goodbye和兩個實體:@goodbye:yes@goodbye:no。如果我的客戶端識別了這個意圖,並且用戶點擊了「是」按鈕,會返回

我的JSON高級(會話服務)

{ 
     "output": { 
     "text": "You can finish the conversation? \n \n 
<button id=\"button-yes\" onclick=\"OneFunction();\">Yes</button> 
<button id=\"button-no\" onclick=\"OtherFunction();\">No</button>" 
     } 
    } 

我需要的alert(output.request.number)返回進來,如果用戶點擊該按鈕沃森的談話流動。

JS代碼:

function OneFunction(firstParameter, secondParameter){ 
console.log(firstParameter); 
    $.ajax({ 
     type: 'POST', 
     dataType: 'json', 
     contentType: "application/json", 
     url: 'http://xxxxxxxxxxxxxxxxxxxxxxxx/request/create', 
     data: JSON.stringify({ 
      "dataOne":firstParameter, 
      "synchronize":false,    
      } 
     }), 
    success:function(output, input, response) { 
     console.log(output); 
    // alert(output.request.number); 
     var responseText = null; 
     var outputTest = {}; 
     outputTest = output.request.number; 
     var latestResponse = Api.getResponsePayload(); 
     // console.log(latestResponse); 
     var context = latestResponse.context; 
     Api.sendRequest = ("Yes", + outputTest); // THIS RETURN one number of request 
} 
+0

不知道如果我完全得到它,但如果你想Watson返回一個腳本或方法調用它的文本響應那麼這不是一個很好的用例。更好的方法是在'context'或'output'字段返回這種信息。在JS中使用JSON應該很簡單,因此要訪問輸出字段,您應該可以編寫'var outputField = latestResponse.output;'。然後你會檢查是否有屬性'alert'和'output'字段中的一些文本,如果是,則向JS中的用戶顯示警報。 –

+0

我想回到同一個對話中,而不是「提醒」。在用戶點擊yes後,它將執行此操作並返回一個我在對話中收到的響應值。 –

+1

所以你想傳播點擊是的沃森對話。你可以通過簡單地向對話發送「是」文本輸入來實現,而在對話中你會在對話節點中處理「是」。現在你也可以通過在JSON請求的'input'部分設置特殊變量來處理這種特殊的輸入,並且你可以在對話節點中檢查它,但是對於這個特殊的用例,我只需要發送「click」作爲「是」文本輸入到服務... –

回答

0

我嘗試和工作,錯誤僅僅是一個,("Yes" + outputTest); 之間,但你的信息是至關重要的此,感謝,@Michal爾必達和@timd 。 :

success:function(output, input, response) { 
     console.log(output); 
    // alert(output.request.number); 
     var responseText = null; 
     var outputTest = {}; 
     outputTest = output.request.number; 
     var latestResponse = Api.getResponsePayload(); 
     // console.log(latestResponse); 
     var context = latestResponse.context; 
     Api.sendRequest = ("Yes" + outputTest); // THIS RETURN one number of request 
相關問題