Полагаю, вам не хватает основ концепции аутентификации пользователей, которая относится не только к Facebook.
Предположим, что два пользователя A & B посетили domain.com/fb_profile.php
, который содержит ( пример файл из PHP-SDK):
<?php
require '../src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'APPLICATION_ID',
'secret' => 'APPLICATION_SECRET',
'cookie' => true,
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
// rest of code
Они оба успешно вошли в систему, и страница перезагрузилась. Теперь произошло то, что у нас есть действительный сеанс для обоих пользователей!
И когда fb_profile.php
запрашивается у пользователя A ( клиент ), $facebook->api('/me');
будет удерживать детали "активного пользователя" из этого конкретного запроса (клиента) ! и ваша машина ( сервер ) будет хранить сеансы для всех зарегистрированных пользователей!
Таким образом, каждый раз, когда fb_profile.php
запрашивается у клиента с допустимым сеансом, результат выполнения $facebook->api('/me');
будет связан с этим конкретным сеансом из этого конкретный клиент!
Так что вы сказали здесь (в жирный ) неправильно:
Но «я», которое относится к «активному
пользователь », который предположительно является пользователем
зашли на фейсбук на этой машине
который будет сервером
И, кстати, когда у вас есть действительный сеанс, оба:
$facebook->api('/me');
А:
$facebook->api('/USER_ID');
Возвращает ту же информацию (, конечно, USER_ID
- это идентификатор пользователя, вошедшего в систему на стороне клиента ).