slack-afk を動かすまで

pyama さんの作った slack-aftk をローカルで動かしたい

Slack App の作成
公式の README の記述はかなり簡素なので slack-gpt の元になっている slack-ruby-client をみてみる

こちらの記事に飛ばされた

リンク先からBotのスコープを持ったAppを自動的に作ってくれる

デフォルトでは Socket mode が有効になっているので無効にしておく

まずは Basic Information のタブで Slack Signing Secret が取得できるので控えておく

次に Slack コマンドを登録していく
登録先のURL は ngrok
で外部からアクセス可能なURLを使う必要がある

OAuth & Permissions からアプリをWorkspace にインストールする

Bot User Token が出るので控えておく

secret を作成
kubectl create secret generic away-from-keyboard-secret --from-literal=slack-api-token=$SLACK_API_TOKEN --from-literal=slack-signing-secret=$SLACK_SIGNING_SECRET

pod をデプロイ
kubectl apply -f manifests/deployment.yml

エラーになった
2024-01-21 21:02:16 /opt/away-from-keyboard/vendor/bundle/ruby/3.1.0/gems/slack-ruby-client-2.2.0/lib/slack/web/faraday/response/raise_error.rb:19:in `on_complete': not_allowed_token_type (Slack::Web::Api::Errors::NotAllowedTokenType)

slack-ruby-bot は legacy app にしか対応してないっぽい

slack-ruby-bot 自体がもう legacy になってしまっているが大丈夫か?

よくみると api token はもう発行できないと書いてある

代わりに OAuth による認証を使う必要がある

これはもろもろ gem をアップデートするところから始めないといけないかもしれない

使っているのはこの二種類
gem 'slack-ruby-bot'
gem 'slack-ruby-client'

slack-ruby-bot は slack-ruby-bot-server として新しくなってる

slack-ruby-client はそのまま使えそう

ローカルで作った image を kubernetes で使うにはこの記事が参考になる

このサンプルがよくまとまってる

slack-ruby-bot-server は mongodb がいるのか

変更箇所が多すぎるので sample を元に一から作り直した方が早いかもしれない

なんだかよくわからなくなってきた
slack-ruby-bot-server の extension として slack-ruby-bot-server-rtm というのがあるのだが、これを使えば既存のコードを大きく変えずに動かせそう?