Пакет fosfacebook не может получить информацию о пользователе из facebook

Я использую Symfony 2.1 для проекта и использую пакет FOSFacebook, интегрированный с пакетом FOSUser. когда пользователь входит в мое приложение, информация не извлекается! я имею в виду, что эта строка входит в исключение:

namespace Acmes\UserBundle\Security\User\Provider;
class FacebookProvider implements UserProviderInterface {
//...
public function loadUserByUsername($username) {
 //...
 try {
       $fbdata = $this->facebook->api('/me');
   } catch (FacebookApiException $e) {
       $fbdata = null;
     }
 //...

} } когда пользователь входит в систему, кнопка меняется на «выход», но я получаю сообщение об ошибке:

"The user is not authenticated on facebook"

что означает, что $fbdata имеет значение null, и информация не возвращается из приложения facebook.

любое решение? Благодарность!:)


person parisssss    schedule 30.01.2013    source источник
comment
вы читали сообщение об исключении? возможно, вы неправильно настроили свое приложение facebook   -  person Julien Rollin    schedule 31.01.2013
comment
@JulienRollin, спасибо за ваш ответ, я думаю, что проверил все, но чтобы убедиться, есть ли какая-либо документация, в которой говорится, как настроить приложение facebook для использования таким образом?   -  person parisssss    schedule 01.02.2013
comment
Вы поместили помощник ветки facebook_initialize в свой макет/шаблон? Вы подключены к facebook в другой вкладке? Facebook php sdk использует файл cookie сеанса, чтобы узнать, подключены ли вы   -  person Julien Rollin    schedule 01.02.2013
comment
да! и, как я уже сказал, кнопка входа меняется на кнопку выхода + после того, как этот пользователь аутентифицируется в facebook на других вкладках.. :(   -  person parisssss    schedule 02.02.2013
comment
хорошо... Итак, проверьте конфигурацию вашего приложения в Facebook (песочница? разрешенный домен?), удалите все файлы cookie и, возможно, удалите доступ к вашему приложению на страницах вашего приложения в Facebook (настройки страницы > вкладка приложения)? Таким образом, вы будете повторно тестировать весь процесс аутентификации :)   -  person Julien Rollin    schedule 02.02.2013
comment
должен ли быть включен режим песочницы? в любом случае это не изменится.. :( спасибо за ваши ответы! :)   -  person parisssss    schedule 03.02.2013
comment
я включил режим песочницы (но, конечно, его нельзя включить навсегда), и пользователь аутентифицируется по своему идентификатору facebook, но не интегрируется в базу данных!   -  person parisssss    schedule 06.02.2013
comment
шаги: получить идентификатор facebook, проверить, существует ли пользователь с этим идентификатором или создать его, добавить/обновить необходимую информацию facebook, вот и все в «loadUserByUsername»   -  person Julien Rollin    schedule 06.02.2013
comment
я сбросил исключение FacebookApiException, вот так: var_dump($e); и результат был: 'message' => string 'couldn't connect to host' (length=24) 'type' => string 'CurlException' (length=13)   -  person parisssss    schedule 07.02.2013
comment
вы на общем хосте? кажется ограничение конфигурации завитка   -  person Julien Rollin    schedule 07.02.2013
comment
теперь я тестирую свое приложение на локальном компьютере (используя WAMP)   -  person parisssss    schedule 09.02.2013
comment
проблема исправлена. это была моя проблема с vpn ... как я могу установить этот вопрос как исправленный? удалить его?   -  person parisssss    schedule 14.02.2013
comment
я бы по крайней мере закрыл его, но вы должны удалить его, потому что вы не выставили свою неправильную конфигурацию   -  person Julien Rollin    schedule 14.02.2013


Ответы (1)


Я столкнулся с той же проблемой, что и ваша. Что-то должно пойти не так в процессе установки пакетов fosuserbundle и fosfacebook. Дважды проверьте свои настройки с помощью следующего руководства. https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Resources/doc/index.md

person Toby D    schedule 25.06.2013