Skip to content

NAFT-LinkSpace/slack-bot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slack-bot

Slackワークスペース内の公開チャンネルの投稿を取得し,一つのチャンネルに同じ内容を投稿するbotです.
slackdump を用いたバックアップ機能つきです.
バックアップの表示に Rocket.chat を使用することができます.

要件

  • Linux または macOS (WSLも可)
  • Windows の場合は BusyBox
    • busybox64u.exe をインストールし,環境変数 PATH に追加しておく.
  • Python 3.8 以上

セットアップ手順

作業環境の準備

  1. リポジトリをクローンする.
    git clone https://github.com/NAFT-LinkSpace/slack-bot
    cd slack-bot
  2. スクリプトを実行し環境構築
    # Windows の場合 `busybox64u sh` の実行後
    chmod +x setup.sh
    ./setup.sh

バックアップを取る準備

  1. ブラウザでボットを導入したい Slack ワークスペースにログインする.
  2. ワークスペースの画面で開発者用ツールを開く
  3. コンソールタブで以下のコマンドを実行し,xoxc- で始まるトークンを控えておく.
    JSON.parse(localStorage.localConfig_v2).teams[document.location.pathname.match(/^\/client\/(T[A-Z0-9]+)/)[1]].token
  4. Application > Cookies > https://app.slack.com を選択し,d という名前のクッキーの値(xoxd- で始まる)を控えておく.

Slack Appの導入

  1. slack apiのページにアクセスし,Create New App から新しいアプリを作成する.
  2. from an app manifestを選択し,ボットを導入するワークスペースを選択する.
  3. YAMLタブを選択し,manifest.yaml の内容をコピペする.
  4. Create
  5. Settings > Basic Information から Install to Workspace を選択し,ワークスペースにインストールする.
  6. App-Level TokensGenerate Token and Scopes から connections:write スコープを追加し,Generate を押してトークンを発行する.
  7. App-level Token を控えておく.
  8. Features > OAuth & Permissions > OAuth Tokens から Bot User OAuth Token を控えておく.

(任意) Rocket.Chatの導入

  1. Rocket.Chatの公式サイトを参考に,Rocket.Chatを導入する. Step 1, Step 2, Step 3, Step 5のみでいい.
  2. http://localhost:3000 にアクセスし,アカウントとワークスペースを作成する.
  3. ユーザーのアイコンをクリックし,Preferences > Personal Access Tokens を選択する.
  4. 適当な名前をつけて Add を押し,トークンを発行し,TokenYour user Id を控えておく.

なお,使いやすさのために以下の項目を設定しておくといい.

  1. 3点アイコン(Administration)をクリックし,Workspace > Settings > Search > Default provider から Global search をオンにする.
  2. Workspace > Settings > Message > Always Search Using RegExp をオンにする.

環境変数の設定

  1. .env.example をコピーして .env ファイルを作成する.
  2. .env ファイルを以下のように設定する.
    1. SLACK_BOT_TOKENBot User OAuth Token
    2. SLACK_APP_TOKENApp-level Token
    3. SLACK_TOKEN にワークスペースから取得した xoxc- で始まるトークン
    4. SLACK_COOKIE にワークスペースから取得した xoxd- で始まるトークン
    5. POST_CHANNEL_NAME に投稿先のチャンネル名
  3. Rocket.Chat を使用しない場合は, ROCKETCHAT_URL, ROCKETCHAT_USER_ID, ROCKETCHAT_TOKEN の行を削除するかコメントアウトする.
  4. Rocket.Chat を使用する場合は, 以下のように設定する.
    1. ROCKETCHAT_URL に Rocket.Chat の URL (localで動かす場合は変えなくていい)
    2. ROCKETCHAT_USER_IDYour user Id
    3. ROCKETCHAT_TOKENToken

実行

# Windows の場合 `busybox64u sh` の実行後
chmod +x run.sh
./run.sh

About

Get all message and post etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 78.9%
  • Shell 21.1%