Tôi mới dùng PHP, và đã có một thời gian rất khó hiểu hệ thống đăng nhập facebook.Kết hợp đăng nhập facebook, sử dụng facebook php-sdk (v.3.0.0), với phiên và cookie
Tôi đã tải xuống ba tệp src/từ github (https://github.com/facebook/php-sdk/). Tôi đã thử sử dụng tệp example.php để bắt đầu. Tuy nhiên, tôi không chắc chắn phải làm gì với nó.
Đối với những người không quen với các tập tin, đây là một bản sao của example.php, với một số các phong cách loại bỏ:
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => '...',
'secret' => '...',
));
$user = $facebook->getUser();
if ($user) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
$naitik = $facebook->api('/naitik');
?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<div>
Login using OAuth 2.0 handled by the PHP SDK:
<a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
</div>
<?php endif ?>
<h3>PHP Session</h3>
<pre><?php print_r($_SESSION); ?></pre>
<?php if ($user): ?>
<h3>You</h3>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
<h3>Your User Object (/me)</h3>
<pre><?php print_r($user_profile); ?></pre>
<?php else: ?>
<strong><em>You are not Connected.</em></strong>
<?php endif ?>
<h3>Public profile of Naitik</h3>
<img src="https://graph.facebook.com/naitik/picture">
<?php echo $naitik['name']; ?>
</body>
</html>
Dưới đây là những câu hỏi tôi có liên quan đến nó:
1) Điều gì về cookie? - Tôi muốn người dùng có thể đăng nhập vào trang web của tôi sau khi mở lại trình duyệt của mình.
2) Số tiền tối thiểu tôi cần để lấy ra khỏi tệp example.php này là xác thực/đăng ký người dùng, bắt đầu phiên, lưu phiên trong cookie, lấy id người dùng fb, tên fb, fb hình ảnh, và danh sách các fb bạn bè?
3) Trong tệp src /, có một tệp 'fb_ca_chain_bundle.crt' và tôi hoàn toàn không quen thuộc với tệp như vậy và tôi không chắc liệu tệp đó có cần thiết hay không. Mục đích của nó là gì?
4) Dòng $naitik = $facebook->api('/naitik');
là "naitik" tên người dùng của người này - vì vậy nếu tôi nhập facebook.com/naitik, nó sẽ hiển thị tiểu sử công khai của anh ấy? đang thay thế "/ naitik" bằng "/ tôi" những gì sẽ nhận được hồ sơ công khai của người đăng nhập vào facebook?
5) Làm cách nào để nhận mã thông báo truy cập và cách sử dụng mã thông báo trong mã của tôi?
6) Khi tôi tạo phiên cho người dùng và cookie để người dùng đăng nhập sau khi mở lại trình duyệt, tôi nên lưu trữ chính xác những gì trong phiên và cookie của mình?
Tôi biết đây là nhiều câu hỏi, nhưng tôi đã xem qua nhiều hướng dẫn trực tuyến và không ai trong số họ thực hiện tốt công việc này, chủ yếu là vì họ chỉ liên kết lại với các tệp Github PHP-SDK. Hơn nữa, hầu hết trong số họ giải thích một phiên bản trước của PHP-SDK. Bất kỳ trợ giúp nào được đánh giá cao, với bất kỳ câu hỏi nào.
[Thinkdiff] (http://thinkdiff.net/) có một số hướng dẫn cập nhật nhiều hơn hoặc ít hơn về chủ đề này. –