FacebookのOAuth認証を呼び出すURLが変わった

[ スポンサーリンク ]

※先に断わっておきますが、私はエンジニアではなくプログラムの知識があるわけではありませんので、あくまでも参考情報しかご提供できません。

OAuth認証を利用する際にアクセスするURLが変わったらしいです。

あ、細かいフレーズに間違いがあるかもしれませんが見逃してください。
雰囲気でしか理解していませんのでww

今日のお昼ぐらいから、Facebookのアプリで認証が走った際に、上記のようなエラーが出るようになりました。
弊社のスーパーエンジニアたちが瞬殺でハックしてくれたので、参考情報として少し載せておきます。
(といっても、この記事を書いている間にFacebookがバグFIXしちゃいましたけどね・・・)

とりあえず、本件はFacebookのBug Reportに詳細があります。

Enabling Facebook Breaking Changes Feb 2013 Does Not Work
Users cannot log in to our web & mobile app (Instacart) via Facebook even though the Feb Breaking Changes were ‘enabled’

Legacy /oauth/authorize URLs now redirect to a broken OAuth dialog
Apps that are still using the old OAuth dialog URLs no longer work. Example:
https://graph.facebook.com/oauth/authorize?client_id=147366981996453&redirect_uri=http%3A%2F%2Ffacebook.com%2F

で、上のほうのBug reportにFacebookの公式から返答が付いています。

どうやらOAuthにアクセスするときのURLが

【旧】graph.facebook.com/oauth/authorize
【新】www.facebook.com/dialog/oauth

と変更になったらしいです。

一応、旧URLから新URLに自動的にリダイレクトされるようになっているようなんですが、このリダイレクトの処理にミスがあったので、今日の昼からエラーになっていました。
(15:30頃に、解消済み)

今は正常にリダイレクトされているとはいえ、精神衛生上はいつまでも旧URLのままにしておきたくないので、できるタイミングで新URLへの置き換えをしておくのが良いでしょう。

なお、しれっと開発ドキュメントも更新されており、

http://developers.facebook.com/docs/authentication/
 ↓
http://developers.facebook.com/docs/concepts/login/

にリダイレクトされるようになりました。
これからは後者を参考にしていくとよいかと。

一応、2013年2月6日の仕様変更リストにも入っていました。

Authenticated referrals going away
We will remove the Authenticated Referrals feature. You should instead use the Login Dialog.

まあ、この一文だけ見ても直感的に理解できていませんでしたが、文中の二つのリンクの先のページをよく読めばわかる、ってことだったみたいです。