在我找到解决方案时回答我自己的问题。
1/ 我创建(并注册)了一个名为 NewFacebookUserListener 的新事件监听器:
...
/**
* {@inheritDoc}
*/
public static function getSubscribedEvents()
{
return array(
MyCustomEvents::NEW_FACEBOOK_USER => 'onNewFacebookUser'
);
}
public function onNewFacebookUser(UserEvent $event)
{
// we get the user
$user = $event->getUser();
// and now you can do what you wish
}
2/ 在我的 FacebookProvider(位于 Security/User/Provider 下)中,我添加了几行来调度这个新事件:
$user->setFBData($fbdata);
// we send a "FB user created" event
$dispatcher = $this->container->get('event_dispatcher');
$dispatcher->dispatch(MyCustomEvents::NEW_FACEBOOK_USER, new UserEvent($user, $this->container->get('request')));
正如预期的那样,只有在创建新的 Facebook 用户时才会调度该事件。