Open trinker opened 4 years ago
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')
)
This activates the token and set the ENV variables in the session
slackteams::activate_team(team = 'yonihuji')
You can convert the relevant variables to a
slackteams::activeteam2dcf()
slackteams::update_team_file(file)
this will keep the token persistent across sessions
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'
)
> 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
How might I use slackcalls to send a reminder to slack. Asking per this Twitter convo: https://twitter.com/yoniceedee/status/1265663445598441473?s=20