FacebookとSNS連携!SDKを使わずにOAuth2でアクセストークン取得する/PHP


fb_oauth2_01
あるサイト制作でFacebookを使った会員登録やログインを実装してました。OAuth2という認証方式が使われていたので、仕組みを 「SNS連携やってみた!OAuth2の処理の流れまとめてみる」にまとめました。PHPはSDKが準備されているのですが、今回はOAuth2の仕組みの勉強がてらSDKを使わずにPHPでアクセストークを取得する処理をまとめてみます。

完成サンプル:GitHub

事前準備

fb_oauth2_02
例としてFacebookを使った会員ログインを考えます。少しでも手間を楽にしたら会員登録してくれる人も多くなるはずと、最近ではSNSを使ったログインが多くなりました。
クライアント(サイト制作者)はFaceBook(サービスプロバイダー)を使ったログインをするため、Facebookに使わせてくださいと登録します。そこで使う権限などを登録してAPIを利用するためのIDなどを発行してもらいます。なのでまずは、Facebookとの手続きが必要になります。

fb_oauth2_03
Facebookとの手続きは、「Facebook Developers」で行います。
サイトにアクセスして「My Apps」をクリックしログインします。

fb_oauth2_04
登録されているアプリ一覧が表示されます。今回は新規アプリ(※ウェブサイトも含む)で作成するので「Add a New App」ボタンをクリックします。

fb_oauth2_05
プラットフォームは「ウェブサイト」を選択します。
fb_oauth2_06
新規アプリの入力欄が表示されるので入力して、「Create New Facebook App ID」ボタンをクリックします。今回は、アプリ名に「OAuth2 Test」としました。

fb_oauth2_07
テストアプリかどうか聞いてきます。検証用なのでテストアプリかといえばそうなんですが、ここの意味は既にあるアプリのテスト用かということなので、今回は別アプリとして新規になります。なので「Create OAuth2 Test App?」は「いいえ」にしてカテゴリを選びます。「はい」にすると既に登録しているアプリを選択するように入力項目が変更されます。「Create App ID」をクリックします。
fb_oauth2_08
「Quick Start for Website」の画面が表示されますが、今回はSDKを使わないんでスキップしました。
fb_oauth2_09
やっと、「App ID」と「App Secret」を発行してもらいました。APIではこれらの値を使います。
アクセストークンと取得するためにはもう少し設定が必要になります。
fb_oauth2_10
サイドメニューの「settings」をクリックします。「+Add Platform」ボタンをクリックします。
fb_oauth2_11
今回はウェブサイトなので「Website」をクリックします。
fb_oauth2_12
アプリを使うサイトのURLを入力します。アクセストークンを取得する処理の流れに、Facebookサイトからアプリを使うサイトにリダイレクトさせる処理があるのですが、リダイレクト先として設定したURLのドメインとここで登録したドメインが一致しないとエラーになります。今回の例ではFacebookのログインボタンを設置(※アプリを使う)するサイトのドメインのURLを入力します。「localhost」やローカルIPでも問題なく動作しました。入力したら「Save Changes」ボタンをクリックします。

以上で最低限の設定は終わりです。
次のページでは「SNSログインボタン(リンク)の設置」をみていきます。


[facebook API 関連記事]

コメントを残す

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