Slackr:x id问题-无法发送消息

时间:2020-10-13 17:17:53

标签: r slack-api slackr

我不是管理员,所以无法更改范围。我可以将slackr_bot消息发送到在UI中创建应用程序时设置的通道,但无法执行以下操作。有没有人找到解决方案?

我创建了一个名为test.txt的txt文件

在该txt文件中,它看起来像这样:

api_token: xxxxxxxxxxxx
channel: #channel_name
username: myusername
incoming_webhook_url: https://hooks.slack.com/services/xxxxxxxxxxx/xxxxxxxxxxxxx

然后我只想发送一条消息,但最终我想运行该功能 ggslackr(qplot(mpg,wt,data = mtcars))

slackr_setup(config_file = "test.txt")
my_message <- paste("I'm sending a Slack message at", Sys.time(), "from my R script.")
slackr_msg(my_message, channel = "#channel_name", as_user=F)

这是错误消息:

Error: Join columns must be present in data.
x Problem with `id`.
Run `rlang::last_error()` to see where the error occurred.
In addition: Warning message:
In structure(vars, groups = group_vars, class = c("dplyr_sel_vars",  :
  Calling 'structure(NULL, *)' is deprecated, as NULL cannot have attributes.
  Consider 'structure(list(), *)' instead.

1 个答案:

答案 0 :(得分:0)

编辑#2:

好的,我学到了一些有关包装的知识。如果必须这样做,我会去他们的github repo and read the issue tracker.

原因是,看来slackr存在一些与Slack API更改有关的问题。

而且由于对R(版本4.x)进行了较大的更新,所以很多软件包都被破坏了。

我的感觉是,我们的问题是在slackr函数(slackr_util.r--iirc)中的一行代码调用了一个dplyr联接,该联接正在寻找不存在的特定id。

因此,我将观看问题跟踪器,并查看其结果。


编辑:尝试slackr_bot(my_message,channel = "#general")

按广告宣传工作!

但是ggslackr继续失败。


我遇到了同样的问题。我在另一个线程中找到了调试开始:

`rlang::last_error()`

当我运行它时,

Backtrace:
  1. slackr::slackr_msg(my_message, channel = "#general")
  5. slackr::slackr_chtrans(channel)
  6. slackr::slackr_ims(api_token)
  8. dplyr:::left_join.data.frame(users, ims, by = "id", copy = TRUE)
  9. dplyr:::join_mutate(...)
 10. dplyr:::join_cols(...)
 11. dplyr:::standardise_join_by(by, x_names = x_names, y_names = y_names)
 12. dplyr:::check_join_vars(by$y, y_names)

因此,在第8步中,id进行了连接,我想这暗示着'id'丢失了。

但是,如果我运行from github issue trackerslackr::slackrSetup(echo=TRUE)我得到以下信息:

{
  "SLACK_CHANNEL": ["#general"],
  "SLACK_USERNAME": ["slackr_brian"],
  "SLACK_ICON_EMOJI": ["NA"],
  "SLACK_INCOMING_URL_PREFIX": ["https://hooks.xxxxxxx"],
  "SLACK_API_TOKEN": ["token secret"]
} 

由于问题跟踪器的对话中提到要确认要转到正确渠道的网络钩子并变得非常针对用户,因此我不确定从这里走什么地方。

所以,就我所知。