2013-03-26 2 views
0

Я пытаюсь создать запись конкурса, которая проверяет, нравится ли пользователю страница перед входом. Если они это сделают, он получит свое имя, адрес электронной почты и день рождения для информации о записи в конкурсе.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, кажется, не протоколирует пользователю.

+0

'/ me/first_name' не является правильным синтаксисом для доступа к имени пользователя (то же самое для last_name, дня рождения и электронной почты) - поэтому ваши вызовы API завершаются сбоем, вызывают исключение - и в том, вы устанавливаете '$ user' нулевое значение ... и что триггеры снова отображают URL-адрес для входа. – CBroe

+0

Какой будет правильный синтаксис? http://developers.facebook.com/tools/explorer/?method=GET&path=me Наводит на мысль, что я использую правильный синтаксис –

+0

'/ me', который предоставит все эти данные (конечно, понравится, конечно), вы просто должны вытащить его из структуры данных. (И вы можете включить подобные данные, если вы укажете его с помощью параметра 'fields'parameter.) Btw., Разве вам не приходило в голову, что создание отдельного вызова API для каждого значения будет означать многозадачные HTTP-запросы ...? – CBroe

ответ

0

Для тех, кто все еще ищет. Вот как я исправил свою проблему. Я должен был убедиться, что этот код был выполнен ПЕРЕД другим кодом, поэтому я набросал его на самую вершину моего php-файла, и он сработал. Я думаю, проблема заключалась в том, что заголовки уже отправлены, но я не знал, потому что мои предупреждения/ошибки PHP не отображаются.

0

Я столкнулся с той же проблемой. Я использовал примерный проект и не мог понять, почему он продолжает возвращаться. Пробовал почти все связанные ссылки здесь, но никто не решил его.

Решение заключается в обновлении файлов SDK от Facebook в примере проекта. Простой и легко пропущенный,

Смежные вопросы