TwitterのOAuth仕様変更のお話

顛末

同僚PからとあるウェブサイトにTwitter経由でログインできないとヘルプが飛んできたよ

よく見るとこんなメッセージと一緒にFatalエラーを吐いて止まっておりましたとさ

{"errors":[{"code":415,"message":"Callback URL not approved for this application. Approved callback URLs can be adjusted in your application settings"}]}

おっこれは正体不明の謎の拡張子jsonで名高いJSON形式ですね! これに書かれているメッセージを訳すとこうなります

このアプリケーションではコールバックURLが承認されていません。 承認されたコールバックURLは、アプリケーション設定で調整できます。

早い話がコールバックURLがこれではダメだと文句を言っているわけです。コールバックというのはまぁ読んで字のごとくよせては返されるの返されるの方です(伝わらない)(ググって)

で、なぜこんなエラーで死んでるのかといいますとTwitterがサードパーティアプリのOAuth認証の仕様変更を行ったからなのです。

この仕様変更で、コールバックのURLをアプリケーションが(プログラムからコールする際に)コールバックURLをオーバーライドすることができたものが事前に設定されたコールバックURL (apps.twitter.comで複数個設定できる) しかリクエストが通らなくなったのです。で、その変更が適用されたのが昨日。

ぶっちゃけぼくも一昨日くらいにこのことを知ったので割と忘れてる人おおそうみたいな感じがしました(小並感)

解決方法

apps.twitter.com にアクセス

自分のアプリをクリックしSettingsタブを開くとこうなっています

下の方にある Callback URLs にコールバックとして呼び出させるURLを指定してやるだけです。

仕様変更に伴ってコールバックURLを複数設定できるようになっているので最悪コールバックに使っているURL全部書けば終わりですね(ほんまか)

余談

CGPのログイン用アプリではちゃんとコールバックURLを設定したつもりだったのですが、URLの callbackcollback と誤字っていたために同様のエラーを発生させていました。死んだほうがいい。

そう、かつてはコールバックURLのオーバーライドが効いていたのでエラーを見ることなくログインができていたんですね…

タイプミスには気をつけよう!💃

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です