401 Authorization Requiredっていうエラーが出ちゃったんだけど??
どうも、Linです。オペラデビュー、します。
RailsアプリにTwitterログイン機能を実装していたら、
401 Authorization Required
という名前のエラーが出現。

エラーの発生箇所を確認しても、具体的にどこかが間違っているのかよくわかりません。
お手本のコードを写経しただけだったので、コードの意味を理解していないのも痛手でした笑
にっちもさっちも行かない状況とはまさにこのこと。
そこでググってみたところ、次の神記事を発掘。
この記事によると、この「401 Authorization Required」というエラーは、
- アプリの設定画面のCallbackURLに何も入力されていない
- API KEY(CONSUMER KEY)とAPI SECRET(CONSUMER SECRET)の設定が間違っている
- コンピュータの時刻が狂っている
- アプリがTwitterからSuspendされてる
という4つの原因のいずれかであることがわかりました。
ってことで、それぞれの対処法を試してみて、エラーが解消できるか徹底検証です。
原因1. CallbackURLに何も入ってない
Twitterアプリの設定で、
CallbackURLに何も入れてない
という原因が考えられます。
この可能性を疑ってみましたが、いや、やはり、記載されてますね。

原因2. コンピューターの時刻が狂ってる
コンピューターの時刻が1秒でも狂っていても、このエラーが出る可能性があるみたいです。
コンピューターの時刻は、こちらのサイトから確認できます。
うーん、合ってますね〜

もし、0.1秒でも狂っている方は、タイムサーバーを変更する手があります。
Macでしたら、画面右上の日付をクリックして、
日付と時刻環境設定を開く
をクリック。

左下の鍵マークをクリックして、ロックを解除。

あとは、
日付と時刻を自動的に設定
の箇所を、
ntp.jst.mfeed.ad.jp
に変更するだけです。

しかし、いくら時計を正確に設定しても、先ほどのエラーは消えてくれてませんでした。
原因3. キーを打ち間違えている
続いては、
- API Key
- Secret Key
の2つを打ち間違えているというミス。
「いや、さすがにこれはないだろ・・・私に限って・・・・」
とおもって確認してみたところ、
うわっ、打ち間違えてる!笑
よく見ると、Secret Keyの先頭に半角のスペースが入っているではありませんか!
キーをコピーアンドペーストすると、このような失敗を犯すことがありますので要注意です。
401 Authorization Requiredというエラーは頑張れば消える
キーを修正したところ、401 Authorization Requiredというエラーは消え去りました。
これと同じエラーが出てしまっている方は、1つ1つの原因を上から潰してみてくださいね。
それでは!
Lin

おそらく、ブロガー。
今年でフリーランス 6年目。