yonicd / slackcalls

generic package to call slack api from R
https://yonicd.github.io/slackcalls/
Other
5 stars 1 forks source link

Sending a reminder to slack #4

Open trinker opened 4 years ago

trinker commented 4 years ago

How might I use slackcalls to send a reminder to slack. Asking per this Twitter convo: https://twitter.com/yoniceedee/status/1265663445598441473?s=20

yonicd commented 4 years ago

Create a token

First you need to create a token for an incoming webhook with the necessary scopes. For this you can use slackteams.

This creates the token, it is an interactive setup via the browser, select the team you want to set it to (in this example I am using my slack team yonihuji).

You can use the base scopes that are part of slackteams (there are other types see here) and add the necessary scope for reminders.

slackteams::add_team_interactive(
   scopes = c(slackteams::load_scopes(which = 'base'),'reminders:write')
)

active the team

This activates the token and set the ENV variables in the session

slackteams::activate_team(team = 'yonihuji')

Session persistent

You can convert the relevant variables to a

this will keep the token persistent across sessions

Posting

using slackcalls you can post to slack any method that is in the API.

res <- slackcalls::post_slack(
  slack_method = 'reminders.add',
  token = Sys.getenv('SLACK_API_TOKEN'),
  text = 'my text',
  time = 'in 5 minutes'
)

Result

Screen Shot 2020-05-27 at 8 40 27 PM
> res
$ok
[1] TRUE

$reminder
$reminder$id
[1] "Rm013YK4CWBZ"

$reminder$creator
[1] "U6GMPP81H"

$reminder$text
[1] "my text"

$reminder$user
[1] "U6GMPP81H"

$reminder$recurring
[1] FALSE

$reminder$time
[1] 1590625177

$reminder$complete_ts
[1] 0

attr(,"class")
[1] "reminders.add" "list"         
attr(,"slack_method")
[1] "reminders.add"
attr(,"body")
attr(,"body")$text
[1] "my text"

attr(,"body")$time
[1] "in 5 minutes"

attr(,"body")$token
[1] "xoxp-XXXX-XXXX-XXXX-XXXX"

attr(,"body")$limit
[1] 1000
sessioninfo ```r ─ Session info ─────────────────────────────────────────────────────────────────────────── setting value version R version 3.6.3 (2020-02-29) os macOS Mojave 10.14.5 system x86_64, darwin15.6.0 ui RStudio language (EN) collate en_US.UTF-8 ctype en_US.UTF-8 tz America/New_York date 2020-05-27 ─ Packages ─────────────────────────────────────────────────────────────────────────────── package * version date lib source assertthat 0.2.1 2019-03-21 [1] CRAN (R 3.6.0) backports 1.1.6 2020-04-05 [1] CRAN (R 3.6.3) cli 2.0.2 2020-02-28 [1] CRAN (R 3.6.0) clipr 0.7.0 2019-07-23 [1] CRAN (R 3.6.0) crayon 1.3.4 2017-09-16 [1] CRAN (R 3.6.0) curl 4.3 2019-12-02 [1] CRAN (R 3.6.0) desc 1.2.0.9000 2020-04-03 [1] Github (r-lib/desc@da19501) details 0.2.1 2020-01-12 [1] local dplyr 0.8.5 2020-03-07 [1] CRAN (R 3.6.0) ellipsis 0.3.1 2020-05-15 [1] CRAN (R 3.6.2) fansi 0.4.1 2020-01-08 [1] CRAN (R 3.6.0) glue 1.4.1 2020-05-13 [1] CRAN (R 3.6.2) httpuv 1.5.2 2019-09-11 [1] CRAN (R 3.6.0) httr 1.4.1 2019-08-05 [1] CRAN (R 3.6.0) jsonlite 1.6.1 2020-02-02 [1] CRAN (R 3.6.0) knitr 1.28 2020-02-06 [1] CRAN (R 3.6.0) later 1.0.0.9002 2020-03-03 [1] Github (r-lib/later@0fb877a) lifecycle 0.2.0 2020-03-06 [1] CRAN (R 3.6.0) magrittr 1.5 2014-11-22 [1] CRAN (R 3.6.0) packrat 0.5.0 2018-11-14 [1] CRAN (R 3.6.0) pillar 1.4.4 2020-05-05 [1] CRAN (R 3.6.2) pkgconfig 2.0.3 2019-09-22 [1] CRAN (R 3.6.0) png 0.1-7 2013-12-03 [1] CRAN (R 3.6.0) promises 1.1.0.9000 2020-03-03 [1] Github (rstudio/promises@627dfc6) purrr 0.3.3 2019-10-18 [1] CRAN (R 3.6.0) R6 2.4.1 2019-11-12 [1] CRAN (R 3.6.0) Rcpp 1.0.4.6 2020-04-09 [1] CRAN (R 3.6.3) rlang 0.4.6 2020-05-02 [1] CRAN (R 3.6.2) rprojroot 1.3-2 2018-01-03 [1] CRAN (R 3.6.0) rstudioapi 0.11 2020-02-07 [1] CRAN (R 3.6.1) sessioninfo 1.1.1 2018-11-05 [1] CRAN (R 3.6.0) slackcalls 0.0.4 2020-04-05 [1] Github (yonicd/slackcalls@319ba39) slackteams * 0.2.1 2020-05-27 [1] local tibble 3.0.1 2020-04-20 [1] CRAN (R 3.6.2) tidyselect 1.0.0.9000 2020-01-30 [1] Github (r-lib/tidyselect@bb145af) vctrs 0.3.0.9000 2020-05-27 [1] Github (r-lib/vctrs@7ca3ce3) withr 2.1.2 2018-03-15 [1] CRAN (R 3.6.0) xfun 0.12 2020-01-13 [1] CRAN (R 3.6.0) xml2 1.3.0 2020-04-01 [1] CRAN (R 3.6.2) yaml 2.2.1 2020-02-01 [1] CRAN (R 3.6.0) [1] /Library/Frameworks/R.framework/Versions/3.6/Resources/library ```