В URL есть данные, называемые «сессия». Нужно ли сохранять это, чтобы постоянно получать идентификатор пользователя?
Да, его нужно сохранить, но класс Facebook анализирует его и сохраняет его в файле cookie для вас.
Кроме того, было бы проще просто полностью вырезать библиотеку PHP и просто обработать ответ, сохранив ее в переменной сеанса.
Класс Facebook
, предоставленный в facebook.php , не является обязательным для использования API, но предоставляет вам несколько удобств, таких как объединение общих URL-адресов, анализ данных сеанса (который отправляется URL, а затем сохраняется в cookie), превращая сообщения об ошибках (объект JSON с ключом «error») в исключение PHP и т. Д.
Так что, короче говоря, нет, было бы проще вырезать библиотеку PHP, потому что в итоге вы написали бы в основном те же вещи.
Как видно из примера, они получают идентификатор пользователя ($uid
), вызывая getUser
:
if ($session) {
try {
$uid = $facebook->getUser();
$me = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
}
}
$ uid - это просто целое число, а $me
- данные для текущего пользователя (которые, как вам кажется, вам не нужны). Те же данные можно получить, позвонив по номеру:
$me = $facebook->api('/' . $uid); //Generates https://graph.facebook.com/[uid]
Проблема, с которой я сейчас столкнулся в этом примере, заключается в том, что функция curl внутри класса Facebook (метод makeRequest
) по какой-то причине возвращает содержимое NO. Итак, $me
заканчивается ничем, что заставляет пример все еще говорить «Вы не подключены». Но, если бы вы вывели $uid
, вы бы увидели, что он действительно содержит ID текущего пользователя.