#r #slack #slack-api #plumber #slack-commands
#r #слабый #slack-api #сантехник #slack-команды
Вопрос:
Я пытаюсь создать ответ бота для slack с помощью Plumber, и я могу заставить модель работать и получать текстовый ответ при запросе из командной строки или тестировании из swagger. Когда я использую команду Slack с косой чертой, хотя ответ возвращается, но в канале отображается только пустой ответ. Я попробовал несколько небольших настроек, но это просто не сработает для меня, поэтому надеюсь, что кто-то, у кого есть работающий Slack Plumber bot, сможет увидеть, что я делаю неправильно.
#' return chatbot response
#' @param text the message used for analysis
#' @post /response
function(text=" ", res) {
# turn parsed message into tidy dataframe
msg_df <- tibble(line = 1:1, text = text)
# unnest words in dataframe and create response
msg_df <<- msg_df %>% unnest_tokens(word, text)
body <- pred(msg_df)
my_message <- list(response_type = unbox("in_channel"),
text=unbox(body))
return(my_message)
}
и это то, что я получаю от slack после его настройки и запуска.
возвращаемый ответ выглядит так, что я вижу в руководствах по Slack
Тело ответа
{
"response_type": "in_channel",
"text": "some text information"
}
Действительно ценю любые идеи!
Комментарии:
1. поместите
browser()
оператор в свою функцию plumber, добавьте параметрreq
послеres
и проверьте, что вы получаете от slack вreq
среде.
Ответ №1:
Первоначальное решение заключается в том, что сериализатор Plumber может быть привязан к:
@serializer ContentType list(тип=»текст / обычный») #предоставляет простой текстовый ответ
Это работает, если все, что вам нужно, — это обычный текст без форматирования (что работает в моем случае).