58e51c7ae5
We also upgrade the RTM client API from v1 to v2. This is so that we no longer require aiohttp. If we use v1, it would still require aiohttp. |
||
---|---|---|
.. | ||
bridge_with_slack_config.py | ||
README.md | ||
requirements.txt | ||
run-slack-bridge |
Slack <--> Zulip bridge
This is a bridge between Slack and Zulip.
Usage
1. Zulip endpoint
- Create a generic Zulip bot, with a full name like
Slack Bot
. - (Important) Subscribe the bot user to the Zulip stream you'd like to bridge your Slack channel into.
- In the
zulip
section of the configuration file, enter the bot'szuliprc
details (email
,api_key
, andsite
). - In the same section, also enter the Zulip
stream
andtopic
.
2. Slack endpoint
- Make sure Websocket isn't blocked in the computer where you run this bridge. Test it at https://www.websocket.org/echo.html.
- Go to https://api.slack.com/apps?new_classic_app=1 and create a new classic
app (note: must be a classic app). Choose a bot name that will be put into
bridge_with_slack_config.py, e.g. "zulip_mirror". In the process of doing
this, you need to add oauth token scope. Simply choose
bot
. Slack will say that this is a legacy scope, but we still need to use it anyway. The reason why we need the legacy scope is because otherwise the RTM API wouldn't work. We might remove the RTM API usage in newer version of this bot. Make sure to install the app to the workspace. When successful, you should see a token that starts with "xoxb-...". There is also a token that starts with "xoxp-...", we need the "xoxb-..." one. - Go to "App Home", click the button "Add Legacy Bot User".
- (Important) Make sure the bot is subscribed to the channel. You can do this by typing e.g.
/invite @zulip_mirror
in the relevant channel. - In the
slack
section of the Zulip-Slack bridge configuration file, enter the bot name (e.g. "zulip_mirror") and token, and the channel ID (note: must be ID, not name).
Running the bridge
Run python3 run-slack-bridge