Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel4登录facebook_Php_Facebook_Facebook Graph Api_Laravel 4 - Fatal编程技术网

Php Laravel4登录facebook

Php Laravel4登录facebook,php,facebook,facebook-graph-api,laravel-4,Php,Facebook,Facebook Graph Api,Laravel 4,几个月前,我用一个facebook应用程序创建了我的登录名。现在我正在进行一个新项目,我使用了这些路线和控制器(与上一个项目相同),但在facebook的一个新应用程序中,我出现了这个错误 Undefined index: username app/routes.php Route::get('login/fb', array('as' => 'facebook.login','uses' => 'SessionController@facebook')); Route::get(

几个月前,我用一个facebook应用程序创建了我的登录名。现在我正在进行一个新项目,我使用了这些路线和控制器(与上一个项目相同),但在facebook的一个新应用程序中,我出现了这个错误

Undefined index: username
app/routes.php

Route::get('login/fb', array('as' => 'facebook.login','uses' => 'SessionController@facebook'));
Route::get('login/fb/callback', array('as' => 'facebook.callback','uses' => 'SessionController@callback'));
Route::get('register',array('as' => 'session.signup','uses' => 'SessionController@create'));
Route::get('logout',array('as' => 'session.logout','uses' => 'SessionController@destroy'))->before('auth');
app/controllers/SessionController.php

<?php

class SessionController extends BaseController {

public function create()
{
    return View::make('sessions.create');
}

public function store()
{
    $data = array();

    if (Auth::check()) {
        $data = Auth::user();
        return Redirect::intended('/profile')->with('AlertMessage','<p class="alert alert-success">Has iniciado sesión <strong>correctamente</strong></p>');
    }

    return Redirect::intended('/profile')->with('AlertMessage','<p class="alert alert-danger">El usuario y/o la contraseña son <strong>incorrectos</strong></p>');
}

public function show()
{   
        return View::make('sessions.view');
}

public function destroy()
{
    Auth::logout();

    return Redirect::to('/')->with('AlertMessage','<p class="alert alert-info">Has cerrado sesión <strong>correctamente</strong></p>');
}

public function callback()
{
    $code = Input::get('code');
    if (strlen($code) == 0) return Redirect::to('/')->with('message', 'There was an error communicating with Facebook');

    $facebook = new Facebook(Config::get('facebook'));
    $uid = $facebook->getUser();

    if ($uid == 0) return Redirect::to('/')->with('message', 'There was an error');

    $me = $facebook->api('/me');

    $user = User::whereUid($uid)->first();
    if (empty($user)) {

      $user = new User;
      $user->first_name = $me['first_name'];
      $user->last_name = $me['last_name'];
      $user->email = $me['email'];
      $user->username = $me['username'];
      $user->uid = $uid;

        $user->save();
    }

    $user->access_token = $facebook->getAccessToken();
    $user->save();

    Auth::login($user);

    return Redirect::to('/')->with('message', 'Logged in with Facebook');
}

public function facebook()
{
    $facebook = new Facebook(Config::get('facebook'));
    $params = array(
        'redirect_uri' => route('facebook.callback'),
        'scope' => 'email',
    );
    return Redirect::to($facebook->getLoginUrl($params));
}
}

我解决了我的问题。中的用户名不再可用。因为这个原因,我不能得到它。检查此链接:

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {

public function up()
{
    Schema::create('users', function(Blueprint $table)
    {
        $table->increments('id');
        $table->string('username',100);
        $table->string('first_name',100)->nullable();
        $table->string('last_name',100)->nullable();
        $table->string('email',100);
        $table->biginteger('uid');
        $table->string('access_token');
        $table->string('access_toker_secret');
        $table->text('remember_token',100);
        $table->string('nickname');
        $table->timestamps();

        $table->unique('username');
        $table->unique('email');

        $table->index('username');
        $table->index('email');
    });
}


public function down()
{
    Schema::drop('users');
}

}