я могу остановить параметры от усечения? - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно сохранить ключ API для пользователя, чтобы он мог использовать мой сервис.У меня есть постоянство и поиск, и я могу вырезать и вставить ключ в своем браузере, что, как я ожидаю, будут делать пользователи.Не идеально, но это разовая вещь.У меня проблема в том, что параметр, передаваемый в ответ json, является усеченным значением.Вот пример.

{
"responseId": "169a5307-2148-4d3d-bdd8-a50a1c365aaf",
"queryResult": {
    "queryText": "set my key to 16FF43FE-A8D9-xxxx-xxxx-xxxxxxxxxxxx",
    "parameters": {
        "APIKey": "16FF43FE-A8D9"

Любые рекомендации здесь?

Ответы [ 2 ]

0 голосов
/ 07 июня 2018

Просто делюсь своим решением для тех, кто хочет сделать что-то подобное.Это крайний случай, даже для моего помощника, но необходимый.

  function setKey(agent) {
    var myRegexp = /my (?:key|API key) is (.*)/gi;
    var queryText = request.body.queryResult.queryText;
    var match = myRegexp.exec(queryText);
    conv.user.storage.apiKey = match[1];
    conv.ask('Ok, saving ' + match[1]);
    agent.add(conv);
  }
0 голосов
/ 06 июня 2018

Dialogflow не предназначен для простого анализа идентификаторов и ключей, поэтому вы можете увидеть такую ​​проблему, как эта.

При хорошем дизайне голосового интерфейса вам не нужно вводить ключи API вручную, но одним из обходных путей будет получение полного ключа из необработанного текста запроса Dialogflow, а не его извлечение в качестве параметра.

...