Реакция на слабое событие view_submission с объектом ошибки - PullRequest
0 голосов
/ 17 апреля 2020

Я использую ASP. NET Core 2.1 для построения интеграции со Slack. Вот мой модал в формате json.

{
  "type": "modal",
  "callback_id": "send_sms",
  "title": {
    "type": "plain_text",
    "text": "Send SMS",
    "emoji": false
  },
  "submit": {
    "type": "plain_text",
    "text": "Submit"
  },
  "close": {
    "type": "plain_text",
    "text": "Cancel"
  },
  "blocks": [
    {
      "type": "divider"
    },
    {
      "type": "input",
      "block_id": "phone_number",
      "label": {
        "type": "plain_text",
        "text": "Enter phone number",
        "emoji": false
      },
      "element": {
        "type": "plain_text_input",
        "placeholder": {
          "type": "plain_text",
          "text": "Phone number",
          "emoji": false
        },
        "action_id": "action_phone_number"
      }
    },
    {
      "type": "input",
      "block_id": "message",
      "label": {
        "type": "plain_text",
        "text": "Enter message",
        "emoji": false
      },
      "element": {
        "placeholder": {
          "type": "plain_text",
          "text": "Message",
          "emoji": false
        },
        "action_id": "message",
        "type": "plain_text_input",
        "multiline": true
      }
    }
  ]
}

Поэтому, когда пользователь отправляет форму, мое. net ядро Приложение получает событие view_submission, и если номер телефона имеет неправильный формат, я хочу ответить на это событие с ошибкой. Slack docs говорит, что я должен ответить с таким json объектом:

`{
  "response_action": "errors",
  "errors": {
    "phone_number": "Invalid phone number format"
  }
}`

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

метод контроллера возвращает Task> object, но я не уверен, что это правильно. Поэтому мой вопрос: кто-нибудь знает, как я должен ответить на это слабое событие, используя. net core? Насколько я понимаю, даже если у меня есть ошибка валидации в моем базовом приложении. net, и я хочу вернуть объект ошибки на провисание, я должен ответить со статусом 200 OK

1 Ответ

0 голосов
/ 17 апреля 2020

В конечном итоге этот вопрос решается путем возврата

Content('json_string', "application/json");
...