learn-awesome/learn

Slack Bot

Open

#192 aperta il 25 ago 2020

Vedi su GitHub
 (4 commenti) (0 reazioni) (0 assegnatari)HTML (46 fork)batch import
Hacktoberfestgood first issue

Metriche repository

Star
 (338 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

In last few commits, I have implemented a basic Slack bot functionality. This is how it works:

image

  • This slack app needs the following Oauth permission scopes: chat:write, chat:write.public, commands

image

  • Once the permission is granted, the access token is stored in SlackAuthorization table.

  • This bot currently adds two slash commands: /startlearning [topic] and /stoplearning [topic]. Using these commands, slack teams' channels can subscribe/unsubscribe to topics. These subscriptions are kept in SlackSubscription table which has a schema (slack_authorization_id, channel_id, topic_id)

  • Whenever a new item is created, all such channels are notified by SlackSubscriptionNotifyJob.

  • This is different from SlackNotifyJob which is used only in our own slack to post items from ALL topics to the #new-items channel. BTW, we also post a random topic to our #general channel in SocialMediaUpdatesJob every day at 13:00 UTC.

image

Enhancement ideas

  • Post daily updates to slack subscriptions so that they don't have to wait till a new item gets added
  • Enable conversations and on-demand resources

Guida contributor