Bot Framework - Получение ответов пользователя из формы, созданной схемой json

Я использую функцию BuildJsonForm для определения формы с использованием схемы JSON. Я генерирую JObject с некоторыми параметрами, которые бот запрашивает у пользователя во время выполнения.

Вот пример JObject/JSON, который я посылаю функции BuildJsonForm:

`

  {
    "References": [
      "Microsoft.Bot.Connector.dll",
      "System.dll",
      "mscorlib.dll",
      "System.Net.Http.dll"
    ],
    "Imports": [
      "Microsoft.Bot.Connector.ThumbnailCard",
      "Microsoft.Bot.Connector.StateClient",
      "System.Net.Mail",
      "System",
      "System.Text.RegularExpressions",
      "System.Net.Http",
      "System.Net",
      "System.Text"
    ],
    "type": "object",
    "required": [
      "username",
      "password"
    ],
    "Templates": {
      "NotUnderstood": {
        "Patterns": [
          "I do not understand, Please rephrase that"
        ]
      },
      "EnumSelectOne": {
        "Patterns": [
          "Choose one please"
        ],
        "ChoiceStyle": "Auto"
      }
    },
    "properties": {
      "username": {
        "Prompt": {
          "Patterns": [
            "Tell me the {&}, please",
            "I need you to especify a {&}, please"
          ]
        },
        "type": [
          "string",
          "null"
        ],
        "Templates": {
          "NotUnderstood": {
            "Patterns": [
              "That is not a valid input"
            ]
          }
        }
      },
      "password": {
        "Prompt": {
          "Patterns": [
            "Tell me the {&}, please",
            "I need you to especify a {&}, please"
          ]
        },
        "type": [
          "string",
          "null"
        ],
        "Templates": {
          "NotUnderstood": {
            "Patterns": [
              "That is not a valid input"
            ]
          }
        }
      }
    },
    "OnCompletion": "await context.PostAsync(\"Thank you!\"); string files = \"\"; context.PrivateConversationData.TryGetValue<string>(\"Files\", out files); [more code...]"

}

`

Мне нужно отправить в базу данных ответы пользователя на вопросы сгенерированной формы JObject/JSON, но до сих пор я не нашел способа сделать это.

Я также попытался получить доступ к BotData с помощью этой строки context.PrivateConversationData.TryGetValue<string>("Files", out files); Таким образом, я мог бы отправить ответы пользователя в базу данных непосредственно из раздела "OnCompletion" в JSON, но я все еще не могу получить доступ к бот-данным или контексту в разделе OnCompletion.

Есть ли другой способ успешно получить ответы пользователя на форму, сгенерированную JObject/JSON, после того, как пользователь ответит на последний вопрос в форме?

1 ответ

Казалось, что причиной моего проекта была отправка этих параметров в функцию:

GeneratedForm.BuildJsonForm(channel, user, convers);

поскольку я редактировал функцию без этих параметров и перестал получать исключение, указанное в вопросе. Я буду искать причину, по которой эти параметры вызывали проблемы, но решение, которое я нашел в этом случае, состояло в том, чтобы определить функцию следующим образом:

GeneratedForm.BuildJsonForm();
Другие вопросы по тегам