Help us understand the problem. What is going on with this article?

OAuth::Unauthorized 401 Unauthorizedなんてエラーがでたら

More than 3 years have passed since last update.

このエラーに出会ってもうすぐ1週間が経ちます。
ググってみると世界中の人がこの401でわちゃわちゃしてました。

このエラーの意味

スクリーンショット 2014-07-02 10.01.25.png

HTTPリクエストの情報を見たけど、これではアクセス権限は与えられないので認証できません!

原因

ググって、発見した原因を多かった順に列挙します。

  1. アプリの設定画面のCallbackURLに何も入力されていない
  2. API KEY(CONSUMER KEY)とAPI SECRET(CONSUMER SECRET)の設定が間違っている
  3. コンピュータの時刻が狂っている(記事下部のコメントも参照してください)
  4. アプリがTwitterからSuspendされてる
  5. まだある!・・・!?(情報お持ちの方コメントお願いします・・・!)

解決法

1. アプリの設定画面のCallbackURLに何も入力されていない

スクリーンショット 2014-07-02 14.25.37.png
https://dev.twitter.com/apps でアプリケーションを登録する際に、Callback URLが入力必須項目でないからといって空っぽにしているとWebアプリケーションでは無くデスクトップアプリケーションとして認識しているため、Webアプリケーション上で動作しません。
Callback URLはダミーURLで良いのでとりあえずなにかのURLを入力しておけば良いです。必要になったときに正しいURLに変更すれば良いです。

2. API_KEY(CONSUMER_KEY)とAPI_SECRET(CONSUMER_SECRET)の設定が間違っている

これはもう論外ですね。ちゃんとドキュメントを読みましょう。
config/initializers/omniauth.rbを作成して、以下を設定

config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :twitter, "API_KEY", "API_SECRET"
end

or

ユーザー登録やログインなどの認証ソリューション「Devise」を利用している場合はconfig/initializers/devise.rbにいろいろ書きます。(詳しくはdeviseのドキュメントへ)

3. コンピュータの時刻が狂っている(記事下部のコメントも参照してください)

スクリーンショット 2014-07-02 15.53.20.png
スクリーンショット 2014-07-02 15.53.27.png

4. アプリがTwitterからSuspendされてる

Twitterにアプリケーションを登録し直します。一度アプリケーションの登録情報を削除し、もう一度登録します。

5. それでも解決しない

僕がこれです。
4つ目の「アプリがTwitterからSuspendされてる」はdev.twitter.com/apps でアプリケーションに「Suspended」と表示されていないので関係ないと思いましたが一応上に挙げた解決策を実行しました。
しかし状況はかわらず。それ以外の原因は当てはまらないので他に原因があるはずだと原因を究明中です。一部のプライマリIPアドレスがブロックされている(この辺りがよくわかっていない。プライマリ?第一?セカンダリというのもあるのですね。なるほどわからん)ことが原因という情報も見つけました。

railsアプリケーションの他の部分が影響しているのかもしれないと考え、別に新しくアプリケーションを作り直し、omniauth-twitterのドキュメントにある通り設定してもこのエラーに直面してしまいます。

omniauth-facebookを用いてfacebookでの認証を試みたところ、これはうまくいきました。TwitterAPIには以前、500番台が返ってくるべきエラーが全て401となって返ってくる問題が発生していたことがあるため、今回もそんなことだったらいいななんて思ったりもしてます。

hirokishirai
Twitter: @dev_lassi Github: https://github.com/hirokishirai 強化学習を用いたFXシストレ奮闘中。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした