r - 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"
}
真的很感激任何想法!
解决方案
最初的解决方案是 Plumber 序列化程序可以更改为:
@serializer contentType list(type="text/plain") #提供简单的文本响应
如果您需要的只是没有格式的纯文本(在我的情况下有效),则此方法有效
推荐阅读
- javascript - 如何内联解构器
- kubernetes - Zalenium 在 HUB 中使用 Kubernetes - 节点模型
- javascript - 如何根据新位置将选定的 div 水平居中?
- spring-boot - Spring Batch - 如何访问动态创建的作业的 JobParameters 或 JobExecution?
- python - 使用 pyodbc 连接到 MS Access
- react-native - 类型和有效负载正在被调度而不调用它
- autodesk-designautomation - x 字节的有效负载长度超过了 8192 字节的允许限制
- laravel - 如何在 Laravel 中防止 DynamoDb 异常 ProvisionedThroughputExceededException
- ajax - 下载后从存储中删除文件
- mongodb - 你如何检查一个集合是否有上限?