先人様のありがたいGemを使う
インストール
gem 'omniauth-slack'
アクセスキーとシークレットキーの入手
Twitterよりもちょっと面倒
まずここに行って適当にアプリケーションを登録する
- AppName, Team, Description, Redirect URIが必須
- RedirectURIは、トークン取得時のリクエストに含める値と同じにする
- 開発環境なら
http://localhost:3000/auth/slack/callback
- 開発環境なら
- 登録が完了後の client_id と client_secret を控えておく
config/initializers/omniauth.rbを新規作成
Rails.application.config.middleware.use OmniAuth::Builder do provider :slack, "API_KEY", "API_SECRET", scope: "client" end
あとは過去ポストのTwitterのようにするだけ なんと簡単
ちなみにセッションに入る認証情報
{"name":"hogehoge","email":"hogehoge@hogehoge.net","nickname":"hogehoge","first_name":"hogehoge","last_name":"hogehoge","description":"すちゅーでんと","image_24":"https://avatars.slack-edge.com/2015-04-17/4506748099_c3612feb086796e55e31_24.jpg","image_48":"https://avatars.slack-edge.com/2015-04-17/4506748099_c3612feb086796e55e31_48.jpg","image":"https://avatars.slack-edge.com/2015-04-17/4506748099_c3612feb086796e55e31_192.jpg","team":"hogehoge","user":"hogehoge","team_id":"T04D23PJA","team_domain":"hogehoge","user_id":"U04ENNCN9","is_admin":false,"is_owner":false,"time_zone":"Asia/Tokyo"}