phpで「facebookでログイン」を実装するまで

phpで「facebookでログイン」を実装するまで
LINEで送る
Pocket

こんにちは。

先日、友達がシステムの実装を行なっている時に、
「phpでfacebookでログインを実装したいけど詰まった」と言っていまして、
そんな難しいものでもないだろうと思ったら、そのとおり簡単だったのですが
調べる事も結構ありましたので、

備忘録として、ここに残しておきます。


目次は、以下の通りです。

facebook-php-sdkを用意

有難いことに、facebook公式がsdkを公開してくれています。

これがあるのと無いのでは天と地との差があります。
さくっと手に入れてしまいましょう。

リンクはこちら。https://github.com/facebook/facebook-php-sdk
上記のリンクをクリックして、「ZIP」をクリック。
ダウンロードが始まるので、適当なディレクトリに解凍して、
「src」フォルダとその中身を、facebookでログインを使いたいphpファイルと同じ場所へ置いて下さい。

これでOKです。次に行きましょう。

アプリケーションを作成

facebookでログインをするには、ユーザ情報を得る元となるアプリケーションが必要になります。
Twitterでも同様ですね。では早速作っていきます。

ですが、アプリケーションの作成については多くの資料があり、
まんまコピペで出来たので参考にさせて頂いたリンクをご紹介します。あとはぐぐれ。

アプリケーションの作成は手順はやや多いですが、
上記のサイト様を見ればすぐに分かると思います。

アプリケーションが作成できたら、次へ進みましょう。

処理の流れ

facebook-php-sdkのソースを見れば、
丁寧に書かれているので、分かると思うのですが、それじゃ備忘録にならないので書きます。笑

ソース読むのに抵抗がある。
という方もいると思うので、手順を噛み砕きます。

必要なファイル構成
まずこれを整えます。同じディレクトリに、srcとindex.phpを置きます。こんな感じ。
/
+- src(facebook-php-sdkのsrcです)
+- index.php
今回は、この構成で実装します。たったこれだけです。

説明の前に、実際に動くサンプルを作りましたので、そちらを参考にしてみて下さい。
ログインをして、ユーザ情報を表示するだけのサンプルです。
「facebookでログイン」動作サンプル

サンプルを見ればなんとなく分かると思います。
ログイン時には、
index.php -> facebook -> アプリで設定したURLへリダイレクト(ログイン完了)
という順番になります。ログアウトするときは、
index.php -> facebook -> 指定したURLへリダイレクト -> セッションをリセット -> ログアウト完了
と、少々手順が増えます。

このような処理を実際に書いていきます。
ただ、サンプルは無駄なものが多めに入っているので、最低限必要な機能だけを書いていきます。

いざ実装。

さて、お待ちかねの実装です。
まずいじるファイルは「index.php」です。
index.phpを開いて下記の内容を記入。
※<?phpの?の手前にスペースが空いていますが、削除して下さい。

まずはこれだけ。
これで、もしindex.phpにアクセスしたユーザーがアプリにログインしていれば、
$userにはユーザIDが入っています。

ログインしている場合と、していない場合で処理を分けたいので、
index.phpに下記を追加して下さい。

実にシンプルですが、これで完了です。
作成したindex.phpをサーバにアップロードして、アクセスしてみて下さい。

いかがでしょうか。
リファレンス通りにやった(言い訳)のですが、動かないなど何かしらの不具合が御座いましたら、
コメントにてご一報よろしくお願い致します。

ちなみに私はログアウトが上手く動かなかったため、上記のgetLogoutUrl()ではなく、
自前でログアウト用のURLと、多少の処理を付け加えました。

それについては、また別の記事として書きます。

LINEで送る
Pocket

  • キム ソンミン

    僕もgetLogoutUrl()がうまく動かないです。解決方法はないのでしょうか?

    • この記事の情報が古くなっており今のFacebook APIの仕様と噛み合っていないですね、、申し訳ありませんが別の記事を参照していただくようお願い致します。