【Laravel】Facebookログインを実装する方法【コピペOK】
こちらを参考に進めたら詰みました。
最終更新日は2016/08なので、フォルダ構造とかは変わってるかも……とは覚悟していましたが、そもそもいろいろ違ったみたいです。
configファイルの作成
app/configとなってますが、Laravel直下にあるconfigがそれっぽいのでそっちに作成しました。
$ vi config/facebook.php
$ cat config/facebook.php
<?php
return array(
'appId' => '[app_id]',
'secret' => '[app_secret]'
);
DBの作成(エラー)
なんかエラー。
$ php artisan migrate:make create_users_table
Command "migrate:make" is not defined.
Did you mean one of these?
migrate
migrate:fresh
migrate:install
migrate:refresh
migrate:reset
migrate:rollback
migrate:status
調べます。
The syntax has changed to php artisan make:migration.
magrate:makeじゃなくてmake:migrationらしいです。
なんか統合されたんですかね?
作成後、記載されている内容でファイルを編集します。
モデルの作成
models……というのがわからないので調べました。
データベースの設定であるconfig/database.phpを設定してね、詳しくはこれ見てねとのこと。
こちらを見た感じだと、Homesteadで作ったローカルにつなぐならデフォルト設定のままで良い?っぽいのでそのままにします。
ただ、app/modelsが見つかりません。
それだけならいいんですが、そもそもどこにもそんなディレクトリはなさそうです。
で、また調べました。
Laravelを学習し始めるとき、多くの開発者はmodelsディレクトリが存在しないことに戸惑います。しかし、意図的にこのディレクトリを用意していません。多くの別々の人達にとって、その意味合いは様々なため、"models"という言葉の定義は曖昧であることに私達は気づきました。ある開発者たちはすべてのビジネスロジックを総称してアプリケーションの「モデル」と呼び、一方で別の人達はリレーショナルデータベースに関連するクラスを「モデル」として参照しています。
このため、私達はEloquentモデルをデフォルトではappディレクトリ下へ設置することを選択し、開発者自分が選んだどこか別の場所へ設置してもらうことにしました。
うっわ余計なことを。
というかそれならデフォルトをapp/modelsにしてくれればいいのに。
そもそも『開発者自分が選んだどこか別の場所』に設置するのはいいけど、その設定はどこでするんでしょう……?
勝手に探してくれるんですかね?
一応、そう信じてみることにして、app/modelsを作成します。
まずはProfileモデルを作成します。
新規作成ファイル:app/models/People.php
……Profile.phpじゃなくて? ん?
それともファイル名はどうでもいいんでしょうか……?
とりあえず信じてやってみることにします。
User.phpの方は……これだけじゃないですよね。
どう考えても<?phpとか必要ですよね。
そもそもデフォルトでappにUser.phpがいるんですけど。
というわけで、modelsに移動させた上でUserクラスのなかに追記しました。
ルーティングの設定
app.routes.php……どれのことでしょう……。
この手のことを書くのはweb.phpな気がするので、そちらに書いてみます。
というかこの項と次の完成版はこちら、までの工程がぐっちゃぐちゃで話が見えません。
コールバックを最低限の形にしておいて、次の項の形まで発展させたってことでしょうか?
とりあえず完成版は置いておいて、この通りにしてみました。
ブラウザで確認してみます……エラー。
Class 'Facebook' not found
予想外なエラーが出ました。
さっきのweb.phpのlogin/fbで使っているFacebookに対して、そんなもんねーぞと言われているようです。
参考元の記事を見直すと、FacebookSDKのインストールをしてないような気が?
したのですが、そのインストールのコードを試したらout of dateとか言われてこれもエラー。
ちょっとわかんないですね……。
Good Game.