Laravel - Login Facebook SDK
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Facebook\Facebook;
use Illuminate\Support\Facades\Config;
use Facebook\Helpers\FacebookRedirectLoginHelper;
use Facebook\Exceptions\FacebookResponseException;
use Facebook\Authentication\OAuth2Client;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Illuminate\Support\Facades\Session;
use Facebook\FacebookApp;
use Facebook\GraphNodes\GraphNode;
use Facebook\FacebookSDKException;
use App\Tutor;
use Carbon\Carbon;
class FacebookController extends Controller
{
protected $helper;
public function __construct(){
session_start();
$this->fb = new Facebook(Config::get('facebook'));
$this->helper = $this->fb->getRedirectLoginHelper();
}
// Hàm xử lý chuyển hướng gửi yêu cầu đến Facebook qua Facebook App
public function RedirectUrl(){
$permissions = ['email', 'public_profile','user_friends'];
$callback = url('/facebook/callback');
$loginUrl = $this->helper->getLoginUrl($callback, $permissions);
return redirect($loginUrl);
}
// Hàm xử lý thông tin trả về hợp lệ
public function Callback(){
try {
$accessToken = $this->helper->getAccessToken();
$response = $this->fb->get('/me?fields=id,name,gender,email',$accessToken);
} catch(FacebookResponseException $e) {
// Khi mà Graph trả về lỗi.
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken)) {
Session::put('facebook_access_token', $accessToken); // Tạo session token facebook.
$graphNode = $response->getGraphNode(); // Lấy thông tin user facebook.
// Get Info $graphNode->getField('id')
$id_fb = $graphNode->getField('id');
}
}
}// End Class