Hướng dẫn chi tiết cách cài đặt thư viên facebook sdk trong php, làm chức năng đăng nhập bằng facebook
Bạn bấm vào nút tạo ứng dụng để tiến hành tạo mới 1 ứng dụng, màn hình mới hiện ra bạn chon 1 mục bất kỳ, mục nào cũng được
Bạn nhập tên của ứng dụng, tên tùy bạn đặt, tên gì cũng được sau đó bấm tiếp tục
Màn hình mới hiện ra, bạn vào mục cài đặt \ thông tin cơ bản để khai báo các thông tin cơ bản cho ứng dụng. Ở màn hình này ban sẽ thấy ID và mã bảo vệ của ứng dụng, ta sẽ dùng cái này để đăng nhập facebook
Bạn khai báo giống như mình sau đó lưu thay đổi
Ở thư mục gốc của website bạn dùng composer chạy lệnh sau để dowload thư viện
composer require facebook/graph-sdk
Sau khi tải xong ta khai báo đường dẫn đến thư viện facebook sdk. Trong hàm xử lý đăng nhập hoặc trong file xử lý đăng nhập của bạn, thêm dòng này vào đầu hàm hoặc file
require_once 'vendor/facebook/graph-sdk/src/Facebook/autoload.php';
Nhập ID và Mã bảo vệ của ứng dụng mà ta đăng ký ở bước 1
$fb = new Facebook\Facebook([
'app_id' => '2528789093845200',
'app_secret' => '40128abe4f1d06eec80d7b63504f1499',
'default_graph_version' => 'v2.7',
]);
Sau đây là code mình đã xử lý bạn copy về thay các thông tin website của bạn vào là chạy
public function loginFacebook()
{
require_once 'vendor/facebook/graph-sdk/src/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'ID_ung_dung',
'app_secret' => 'Ma_bao_ve_ung_dung,
'default_graph_version' => 'v2.7',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email']; // optional
try
{
if (isset($_SESSION['facebook_access_token']))
{
$accessToken = $_SESSION['facebook_access_token'];
}
else
{
$accessToken = $helper->getAccessToken();
}
}
catch(Facebook\Exceptions\facebookResponseException $e)
{
echo 'Graph returned an error: ' . $e->getMessage();
exit;
}
catch(Facebook\Exceptions\FacebookSDKException $e)
{
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
if (isset($accessToken))
{
if (isset($_SESSION['facebook_access_token']))
{
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
else
{
$_SESSION['facebook_access_token'] = (string) $accessToken;
$oAuth2Client = $fb->getOAuth2Client();
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
try
{
$profile_request = $fb->get('/me?fields=name,first_name,last_name,email,picture');
$profile = $profile_request->getGraphUser();
$fbid = $profile->getProperty('id'); // To Get Facebook ID
$fbfullname = $profile->getProperty('name'); // To Get Facebook full name
$fbemail = $profile->getProperty('email'); // To Get Facebook email
$fbAvatart = json_decode($profile->getProperty('picture'))->url;
// Xử lý đăng nhập của bạn ở đây.
}
catch(Facebook\Exceptions\FacebookResponseException $e)
{
echo 'Graph returned an error: ' . $e->getMessage();
session_destroy();
header("Location: ./");
exit;
}
catch(Facebook\Exceptions\FacebookSDKException $e)
{
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
}
else
{
$loginUrl = $helper->getLoginUrl(base_url('user/login-facebook'), $permissions);
header('Location: '.$loginUrl);
}
}
bạn có thể khai báo session và chuyển hướng về trang chủ của bạn luôn. Hoặc bạn có thể kiểm tra thông tin người dùng trong database có chưa, nếu chưa có thì thêm người dùng vào database chẳng hạn. Chỗ này thì tùy mỗi người có cách xử lý khác nhau còn đến đây ta đã lấy được thông tin user trả về là chúng ta đã sử dụng thư viện facebook sdk thành công
Tổng kết : Trong bài viết này mình đã hướng dẫn chi tiết
Nếu có thắc mắc gì bạn hãy để lại comment, mình sẽ hỗ trợ đến khi bạn làm được thì thôi, chúc bạn thành công !