簡體   English   中英

Dialogflow webhook 實現參數無法訪問

[英]Dialogflow webhook fulfillment parameter not accessible

我想在我的 webhook 實現中輸入一個參數。

這是我的代碼:

const bodyParser = require('body-parser')
var request = require('request-promise-native');
const { dialogflow } = require('actions-on-google');
const assistant = dialogflow({
  clientId: "30xxxxx08407-rv9kxxxxxxxxuuq8f9ul2eg.apps.googleusercontent.com"
});


module.exports = (app) => {
  const logger = console;

assistant.intent('Sales', conv => {
 const pcode = agent.parameters['PCODE'];
 console.log(pcode)

    const token = '3369708919812376';
    const serviceID = '502';
    const P_STATE_CD = 'ALL';
    const P_FO_CD = 'ALL';
    const P_DISTT_CD = 'ALL';
    const P_DATE = '16/12/2019';
    const P_PRD_GROUP = 'UREA';
    const P_PERSONAL_NO = '106296';

        var data = {"token" : token,"serviceID" : serviceID,"P_STATE_CD" : P_STATE_CD,"P_FO_CD" : P_FO_CD,"P_DISTT_CD" : P_DISTT_CD,"P_DATE" : P_DATE,"P_PRD_GROUP" : P_PRD_GROUP,"P_PERSONAL_NO" : P_PERSONAL_NO };
        var sdata = JSON.stringify(data);

                    const options = {
                        method: 'POST',
                        uri: 'http://Webservice/resources/webservice/service' ,
                        body: JSON.parse(sdata) ,
                        json: true
                    }
        return request(options)
            .then( body => {
                 var unit = body
                 console.log(body)
                 unit.intent = "Sales"
                 unit.value1 = unit.saleInfo[0].QMTD
                 unit.value2 = unit.saleInfo[0].QYTD
                 unit.value3 = unit.saleInfo[0].O_UOM
                 unit.value4 = null
                 unit.value5 = null

                 delete unit.saleInfo
                 var unit2 = JSON.stringify(unit)
                console.log(unit2)
          conv.ask(unit2);
              })
              .catch( err => {
               console.error( err );
               conv.ask('Something went wrong. What should I do now?');
                 });
  })

我嘗試使用const pcode = agent.parameters.PCODE但它不起作用。 給我錯誤:

參考錯誤:agent 未在 Assistant.intent.conv (/home/dbalunge/GoogleDF/service.js:15:16) 的 Function 處定義。 (/home/dbalounge/GoogleDF/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:151:27) at Generator.next () at /home/dbalunge/GoogleDF/node_modules/actions-on- google/dist/service/dialogflow/dialogflow.js:22:71 at new Promise () at __awaiter (/home/dbalounge/GoogleDF/node_modules/actions-on-google/dist/service/dialogflow/dialogflow.js:18: 12) 在 Object. (/home/dbalounge/GoogleDF/node_modules/actions-on-google/dist/assistant.js:55:32) at Generator.next () at /home/dbalounge/GoogleDF/node_modules/actions-on-google/dist/助手.js:22:71

agent沒有在您的代碼中的任何地方定義,這就是為什么您會得到:

ReferenceError: agent is not defined

在任何情況下,如果您使用assistant.parameters也不會起作用。 Dialogflow 意圖參數可以通過.intent回調的第二個參數訪問。

assistant.intent('Sales', (conv, params) => {
     const pcode = params.PCODE;
     /* ... */
})

有關更多信息,您可以查看文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM