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 というのがあるのだが、これを使えば既存のコードを大きく変えずに動かせそう?