FacebookのOath認証について調べた

 

半年くらい前にfacebookのOath認証使うまでに調べたことのメモ。

一応URLを順に叩くだけでトークン取得までいける。

 

facebookのOAuth認証の流れ(サーバーサイド)

各URLのパラメータとかの詳細は( http://developers.facebook.com/docs/authentication/ )

 

1.ユーザーを承認ページに飛ばす

 URL例)

https://www.facebook.com/dialog/oauth?

        client_id=YOUR_APP_ID&

        redirect_uri=YOUR_URL&

        scope=email,read_stream

 

2.ユーザーが承認した場合、codeが付加されてredirect_uriに帰ってくる

リダイレクト例)

http://YOUR_URL?code=A_CODE_GENERATED_BY_SERVER

 

3.返ってきたcodeを使ってaccess_tokenを取得するURLを叩く

URL例)

https://graph.facebook.com/oauth/access_token?

        client_id=YOUR_APP_ID&

        redirect_uri=YOUR_URL&

        client_secret=YOUR_APP_SECRET&

        code=THE_CODE_FROM_ABOVE

 

4.返ってきたaccess_token でapiが叩ける!

 

この時、code生成にredirect_uri(YOUR_URL)も使ってるっぽい。

(2)のYOUR_URLと(3)のYOUR_URLは同じじゃないとaccess_tokenが取れないので注意!

よく考えたら、(4)でパラメータ付きのリダイレクトで戻ってこない時点で気付くべきだった。

 

と、今Facebook Developersのドキュメント見たら内容変わってた...。

多分大枠は変わってないはずだが、Facebook関連はキャッチアップし続けないとすぐに古い情報になるなー。