ожидается;в JS - PullRequest
       2

ожидается;в JS

0 голосов
/ 21 сентября 2018

Я взял ссылку из демонстрационного диалога .Я получаю сообщение об ошибке:

';'ожидается.

по методу sendTextMessageToDialogFlow.как я могу решить эту проблему?

Вот мой код

router.post('/dialogflow', function(req, res) {
  const projectId = "xxxxxxxxx";

  const LANGUAGE_CODE = 'en-US';
  let credentials = {
    private_key: xxxxxxxxx,
    client_email: "xxxxxxx",
  }
  let sessionClient = new dialogflow.SessionsClient(credentials);
  async sendTextMessageToDialogFlow(req.body.query, req.body.id) {
    const sessionPath = this.sessionClient.sessionPath(projectId, req.body.id);
    const request = {
      session: sessionPath,
      queryInput: {
        text: {
          text: req.body.query,
          languageCode: LANGUAGE_CODE
        }
      }
    }
    try {
      let responses = await this.sessionClient.detectIntent(request)
      console.log('DialogFlow.sendTextMessageToDialogFlow: Detected intent');
      res.json(responses);
    } catch (err) {
      console.error('DialogFlow.sendTextMessageToDialogFlow ERROR:', err);
      cosole.log(err);
    }
  }
})

Ответы [ 2 ]

0 голосов
/ 21 сентября 2018

Вы не можете использовать свойства объекта для параметров функции.Сначала объявите переменные «query» и «id», а затем вы можете использовать их в функции, потому что они находятся в одной области видимости.Также вам не хватает ключевого слова функции.

router.post('/dialogflow', function(req, res) {
  const projectId = "xxxxxxxxx";

  const LANGUAGE_CODE = 'en-US';
  let credentials = {
    private_key: xxxxxxxxx,
    client_email: "xxxxxxx",
  }
  let sessionClient = new dialogflow.SessionsClient(credentials);
  let query = req.body.query;
  let id = req.body.id;

  async function sendTextMessageToDialogFlow() {
    const sessionPath = this.sessionClient.sessionPath(projectId, id);
    const request = {
      session: sessionPath,
      queryInput: {
        text: {
          text: query,
          languageCode: LANGUAGE_CODE
        }
      }
    }
    try {
      let responses = await this.sessionClient.detectIntent(request)
      console.log('DialogFlow.sendTextMessageToDialogFlow: Detected intent');
      res.json(responses);
    } catch (err) {
      console.error('DialogFlow.sendTextMessageToDialogFlow ERROR:', err);
      cosole.log(err);
    }
  }
});
0 голосов
/ 21 сентября 2018

вы, кажется, упускаете слово function, а в параметрах функции есть точки, если оно будет выглядеть примерно так:

let sessionClient = new dialogflow.SessionsClient(credentials);
  async function sendTextMessageToDialogFlow(reqBodyQuery, reqBodyId) {
    const sessionPath = this.sessionClient.sessionPath(projectId, reqBodyId);
    const request = {
            session: sessionPath,
            queryInput: {
                text: {
                    text: reqBodyQuery,
                    languageCode: LANGUAGE_CODE
                }
            }
    }
    try {
            let responses = await this.sessionClient.detectIntent(request)          
            console.log('DialogFlow.sendTextMessageToDialogFlow: Detected intent');
            res.json(responses); 
        }
        catch(err) {
            console.error('DialogFlow.sendTextMessageToDialogFlow ERROR:', err);
            cosole.log(err);
        }
  }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...