読者です 読者をやめる 読者になる 読者になる

like life lives

技術以外のことに興味が寄りすぎな技術ブログ

facebokアカウントでのログイン実装その3:アクセストークンの取得

ここまででアクセストークンを取得する準備が整いました。
リダイレクト先のサーバからfacebookにリクエストを投げ、アクセストークンを取得します。

3.アクセストークンの取得

リダイレクトを受け取ったサーバのスクリプトで、以下のURLにリクエストを投げます。

https://graph.facebook.com/oauth/access_token?client_id=257523117693448&redirect_uri=https://pukkyu.jp/users/fb_oauth&client_secret=xxxxxxxx&code=yyyyyyyyyy


URLに指定するパラメータは以下のとおりです。


  • client_id

facebook developersのサイトに登録して取得したAppIDです。
pukkyuのAppIDは257523117693448なのでこれを指定します。

最初にfacebook認証ページへのリンクに付加したredirect_uriと同じものを指定します。ここではスクリプトが走っているページのアドレスであり、PHPでは

"https://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];


で取得できる文字列と同じです。


  • client_secret

facebookアプリ登録時に取得したシークレットキーを指定します。
この文字列は絶対に外部に漏らしちゃだめです。

  • code

facebookによって付加されリダイレクトURLについてきたcodeをそのまま指定します




PHPでリクエストを送るとこんなかんじになります。

$url = "https://graph.facebook.com/oauth/access_token?client_id=257523117693448&redirect_uri=https://pukkyu.jp/users/fb_oauth&client_secret=xxxxxxxx&code=yyyyyyyyyy"

$signature = file_get_contents($url);


成功すると下のようなレスポンスが$signatureに入ります。

access_token=xxxxxxxxxxxx&expires=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES

access_tokenに指定されている文字列がアクセストークンです。

parse_str 関数を使って取得しましょう。

次回はアクセストークンを使ってfacebookの情報を取得します。