Twitterのソーシャルログインなんて簡単簡単、なんて思っていたら、思いのほかどハマりしたのでメモ。

ソーシャルログインするときは、Twitter開発者プラットフォームに登録をして管理画面からclient_idclient_secretを手に入れなければならない。

で、管理画面を見て下に書いてあるOAuth 2.0 Client ID and Client Secretというところの設定をコピーして使おうとしたんですが間違いでした。

正しくは上のConsumer Keysの方を使います。

Consumer Keysを見てください

これに気がつかず、半日以上時間が溶けた・・

設定しても全然動かなくって、401 Unauthorizedのエラーメッセージが出たまま悩んだ挙句、このオチとは・・

同じようなことで悩んでいる方に届くといいなと思います。

omniauth-twitterで簡単にソーシャルログインはできる

RailsならOmniAuthでソーシャルログインやると思いますが、omniauth-twitterというのがあってこっちは本当に簡単です。

以下のようにconfig/omniauth.rbに追加したらそれでOK。client_idとclient_secretのところは上記で書いているようにConsumer Keysから発行したものを使いましょう。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter,
           Rails.application.credentials.dig(:twitter, :client_id),
           Rails.application.credentials.dig(:twitter, :client_secret)
  # 他にもいくつかprovider設定が書かれている
end

いや、しかし、あの管理画面は紛らわしい・・・

この記事の環境情報

  • Ruby 3.1.2
  • rails 7.0.4
  • omniauth 2.1.0
  • omniauth-twitter 1.4.0
  • Twitter blue申し込んだ