Я пытаюсь создать запись конкурса, которая проверяет, нравится ли пользователю страница перед входом. Если они это сделают, он получит свое имя, адрес электронной почты и день рождения для информации о записи в конкурсе.Facebook PHP Получить информацию о пользователе на странице Tab, getUser возвращает 0 после перенаправления на вход
По какой-то причине, однако, я не могу заставить свой PHP-код работать.
<?php
require 'src/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'XXX',
'secret' => 'XXXX',
'cooke' => true
));
// Get User ID
$user = $facebook->getUser();
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$me = $facebook->api('/me?fields=likes.target_id(215359398497970),birthday,first_name,last_name,email');
if($me){
$first_name = $me['first_name'];
$last_name = $me['last_name'];
$email = $me['email'];
$dob = $me['birthday'];
die($me);
} else {
$likes = false;
}
} catch (FacebookApiException $e) {
die($e);
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
//echo $loginUrl;
}
?>
По какой-то причине, она застревает в цикле переадресации, поскольку loginURL, кажется, не протоколирует пользователю.
'/ me/first_name' не является правильным синтаксисом для доступа к имени пользователя (то же самое для last_name, дня рождения и электронной почты) - поэтому ваши вызовы API завершаются сбоем, вызывают исключение - и в том, вы устанавливаете '$ user' нулевое значение ... и что триггеры снова отображают URL-адрес для входа. – CBroe
Какой будет правильный синтаксис? http://developers.facebook.com/tools/explorer/?method=GET&path=me Наводит на мысль, что я использую правильный синтаксис –
'/ me', который предоставит все эти данные (конечно, понравится, конечно), вы просто должны вытащить его из структуры данных. (И вы можете включить подобные данные, если вы укажете его с помощью параметра 'fields'parameter.) Btw., Разве вам не приходило в голову, что создание отдельного вызова API для каждого значения будет означать многозадачные HTTP-запросы ...? – CBroe