dialogflow v2 извлекает параметры в полном объеме - PullRequest
0 голосов
/ 19 июня 2019

Я использую свой диалог через Facebook Messenger и передаю параметр.Я могу извлечь его, но не уверен, почему это не строка.

код выглядит следующим образом

function botHandler(agent) {
    console.log("inside bot handler request body is:" + 
     JSON.stringify(request.body.queryResult.parameters));
    const adParams = request.body.queryResult.parameters;
    let state = adParams.stateName;

    state = state.toString().toUperCase()

выдается ошибка:

TypeError: state.toString(...).toUperCase is not a function
    at botHandler (/srv/index.js:52:30)
    at WebhookClient.handleRequest (/srv/node_modules/dialogflow-fulfillment/src/dialogflow-fulfillment.js:303:44)
    at exports.dialogflowFirebaseFulfillment.functions.https.onRequest (/srv/index.js:114:9)
    at cloudFunction (/srv/node_modules/firebase-functions/lib/providers/https.js:57:9)
    at /worker/worker.js:783:7
    at /worker/worker.js:766:11
    at _combinedTickCallback (internal/process/next_tick.js:132:7)
    at process._tickDomainCallback (internal/process/next_tick.js:219:9)

значение есть, но не уверен, почему toString не удается

Ответы [ 2 ]

3 голосов
/ 19 июня 2019

toString() не является ошибкой (хотя это, вероятно, не нужно, поскольку, скорее всего, она уже является строкой).

Ваш метод toUpercase() не работает, поскольку у вас есть опечатка в «верхнем регистре».У него должно быть два "p", а не один.toUppercase().

Тем не менее, как заметил Матайс, вы должны сначала убедиться, что у вас есть параметр stateName.

2 голосов
/ 19 июня 2019

Я бы предложил извлечь такие параметры в вашем исполнении:

 function botHandler(agent) {
        let state = agent.parameters["stateName"];
        let uState = state.toUpperCase();
        let answer = "So you live in " + uState + "?";

        agent.add(answer);
    }

И вы можете проверить, присутствует ли параметр следующим образом:

if (agent.parameters["stateName"]) {
    //do stuff here
}

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...