'Slack' < http://slack.com/> provides a service for teams to collaborate by sharing messages, images, links, files and more. Functions are provided that make it possible to interact with the 'Slack' platform 'API'. When you need to share information or data from R, rather than resort to copy/ paste in e-mails or other services like 'Skype' < http://www.skype.com/>, you can use this package to send well-formatted output from multiple R objects and expressions to all teammates at the same time with little effort. You can also send images from the current graphics device, R objects, and upload files.
slackr - a package to send user messages & webhook API messages to Slack channels/users
slackr package contains functions that make it possible to interact with the Slack messaging platform. When you need to share information/data from R, rather than resort to copy/paste in e-mails or other services like Skype, you can use this package to send well-formatted output from multiple R objects and expressions to all teammates at the same time with little effort. You can also send images from the current graphics device, R objects (as R data files), and upload files.
Versions 1.4+ BREAK THINGS.
Support has been removed for the "old style" incoming web hooks (see "Setup" below for the required incoming web hook URL format).
The incoming webhook "token" is no longer required or used.
1.4.2fixes for changes to the Slack API causing duplicate column names and breaking functions
slackr_msg()+ many fixes and BREAKING CHANGES (see above)
data.tabledependency (replaced with
dplyr); added access to
im.list(https://api.slack.com/methods/im.list) thx to PR from Quinn Weber
220.127.116.1100Radically changed how
slackrworks. Functions have camelCase and under_score versions
1.2.3added more parameter error cheking, remobved the need for ending
?on webhook URL and added defaults for missing setup parameters.
1.2.2fixed issue (bug in
1.2.1fixed issue when there are no private groups defined
ggslackr()(first CRAN version)
1.1.1fixed a bug in the new full API
1.1added graphics & files capability
Many thanks to:
for their contributions to the package!
The following functions are implemented:
slackr_setup: initialize necessary environment variables
slackr: send stuff to Slack
slackr_bot: send stuff to Slack using an incoming webhook URL
dev_slackr: send the graphics contents of the current device to a to Slack channel
ggslackr: send a ggplot object to a Slack channel (no existing device plot required, useful for scripts)
save_slackr: save R objects to an RData file on Slack
slackr_upload: upload any file to Slack
slackr_users: get a data frame of Slack
slackr_channels: get a data frame of Slack
slackr_groups: get a data frame of Slack groups
text_slackr: Send regular or preformatted messages to Slack
slackr_msg: Slightly different version of
slackr_setup() function will try to read setup values from a
~/.slackr (you can change the default) configuration file, which may be easier and more secure than passing them in manually (plus, will allow you to have multiple slackr configs for multiple Slack.com teams). The file is in Debian Control File (DCF) format since it really doesn't need to be JSON and R has a handy
read.dcf() function since that's what
DESCRIPTION files are coded in. Here's the basic format for the configuration file:
api_token: YOUR_FULL_API_TOKEN channel: #general username: slackr incoming_webhook_url: https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX
You can also change the default emoji icon (from the one you setup at integration creation time) with
# stable/CRANinstall.packages("slackr")# bleeding edgedevtools::install_github("hrbrmstr/slackr")
library(slackr)# current verisonpackageVersion("slackr")#>  '1.4.1'
slackrSetup(channel="#code",incoming_webhook_url="")slackr(str(iris))# send imageslibrary(ggplot2)qplot(mpg, wt, data=mtcars)dev.slackr("#results")barplot(VADeaths)dev.slackr("@jayjacobs")ggslackr(qplot(mpg, wt, data=mtcars))
library(slackr)library(testthat)date()#>  "Wed Jul 20 14:05:11 2016"test_dir("tests/")#> testthat results ========================================================================================================#> OK: 0 SKIPPED: 0 FAILED: 0#>#> DONE ===================================================================================================================
NEWS.mdfile to track changes to the package.