0

我正在尝试使用 Plumber 创建对 slack 的机器人响应,并且在从命令行查询或从 swagger 进行测试时,我可以使模型正常工作并获得文本响应。当我使用来自 Slack 的斜杠命令时,虽然响应回来了,但通道中只显示了一个空响应。我已经尝试了一些小的调整,但它对我不起作用,所以希望有一个工作的 Slack Plumber 机器人的人可以看到我做错了什么。

    #' 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)
}

这就是我在 docker化并运行后从 slack 中得到的。 斜线命令响应(空

返回的响应看起来像这样,这是我在 Slack 教程中看到的

响应正文

{
  "response_type": "in_channel",
  "text": "some text information"
}

真的很感激任何想法!

4

1 回答 1

0

最初的解决方案是 Plumber 序列化程序可以更改为:

@serializer contentType list(type="text/plain") #提供简单的文本响应

如果您需要的只是没有格式的纯文本(在我的情况下有效),则此方法有效

于 2020-10-21T18:16:59.347 回答