LoginSignup
2
0

More than 5 years have passed since last update.

LaravelでFacebookログインを実装しようとして失敗

Last updated at Posted at 2017-12-10

【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  

調べます。

laravel - php artisan migrate:make create_mytable fails: "migrate:make" is not defined - Stack Overflow

The syntax has changed to php artisan make:migration.

magrate:makeじゃなくてmake:migrationらしいです。
なんか統合されたんですかね?

作成後、記載されている内容でファイルを編集します。

モデルの作成

models……というのがわからないので調べました。

Eloquent:利用の開始 5.5 Laravel

データベースの設定であるconfig/database.phpを設定してね、詳しくはこれ見てねとのこと。

データベース:利用開始 5.5 Laravel

こちらを見た感じだと、Homesteadで作ったローカルにつなぐならデフォルト設定のままで良い?っぽいのでそのままにします。

ただ、app/modelsが見つかりません。
それだけならいいんですが、そもそもどこにもそんなディレクトリはなさそうです。

で、また調べました。

Laravelを学習し始めるとき、多くの開発者はmodelsディレクトリが存在しないことに戸惑います。しかし、意図的にこのディレクトリを用意していません。多くの別々の人達にとって、その意味合いは様々なため、"models"という言葉の定義は曖昧であることに私達は気づきました。ある開発者たちはすべてのビジネスロジックを総称してアプリケーションの「モデル」と呼び、一方で別の人達はリレーショナルデータベースに関連するクラスを「モデル」として参照しています。
このため、私達はEloquentモデルをデフォルトではappディレクトリ下へ設置することを選択し、開発者自分が選んだどこか別の場所へ設置してもらうことにしました。

ディレクトリ構造 5.5 Laravel

うっわ余計なことを。
というかそれならデフォルトを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.

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0