learn-awesome/learn

Slack Bot

開放

#192 建立於 2020年8月25日

 (4 則留言) (0 個反應) (0 位負責人)HTML (46 個分叉)batch import
Hacktoberfestgood first issue

倉庫指標

星標
 (338 顆星)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

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

貢獻者指南