首页 > 解决方案 > R Plumber Slack 机器人响应

问题描述

我正在尝试使用 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"
}

真的很感激任何想法!

标签: rslackslack-apiplumberslack-commands

解决方案


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

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

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


推荐阅读