2010-06-26 4 views
0

Я пытаюсь получить sfFacebookConnectPlugin для работы, следуя tutorial на главной странице symfony.sfFacebookConnectPlugin: проблема с аутентификацией

Все кажется хорошо сконфигурированным. Но когда я пытаюсь войти в систему с помощью sfFacebookConnectAuth/signin. Я получаю ошибку формы «Неправильное имя пользователя и/или пароль.».

Я даже не знаю, с чего начать с отладки.

Первый шаг может быть, чтобы узнать правильные приложения-настройки на Facebook-Side (например Post-Авторизоваться URL обратного вызова, Connect-URL URL или Canvas Callback)

Я использую Symfony 1.4.5 доктрина с sfGuardDoctrinePlugin (на хост-хостере с субдоменом.)

Thx для вашей помощи.

ответ

0

Он указывает на странице плагина, что этот плагин поддерживается только стабильно до Symfony 1.2. Возможно, имеет смысл отправить электронное письмо автору плагина непосредственно относительно совместимости с 1.4.

+0

Да, я узнал его, и это очень странно, но учебник я говорил о том, для Symfony 1.4, так что должны быть совместимы. – ownking

+0

Удивление, если так мало разработчиков используют этот плагин (или у него проблемы с ним): -/ – ownking

+0

Может быть, потому, что на главной странице написано 1.2. Любые новички в Symfony начнут с 1.4, и многие люди уже ждут 2.0. – Tom

1

Я нашел эту страницу: http://burgiblog.com/2009/09/18/developing-facebook-applications-with-symfony/ теперь работает, я изменил три вещи после прочтения учебника:

  • модулей/sfFacebookConnectAuth/конфигурация/security.yml: Используйте «ложь», а не «от»
  • я добавил «callback_url» в приложениях/интерфейс/конфигурации/app.yml
  • И я использовал действие facebook в учебнике

Мне нужно, чтобы выяснить, в чем проблема точно была. И мне нужно кое-что добавить к плагину. Например. сохранение пользовательских данных в моем классе профиля и т. д. (теперь я сохраняю критическое имя пользователя вместо правильного имени пользователя FB.)

0

У меня возникли проблемы с sfFacebookConnectPlugin. Я попытался воспроизвести простой пример с http://burgiblog.com/2009/09/18/developing-facebook-applications-with-symfony/. И вызывая страницу индекса, я перенаправляюсь на страницу аутентификации facebook, но после входа в систему я не перенаправляюсь обратно. Я остаюсь включенным только в facebook. Что я делаю не так?

Спасибо.

Это мой код:

[/frontend/config/app.yml] 

# default values 
all: 
    facebook: 
    api_key: xxx 
    api_secret: xxx 
    api_id: xxx 
    callback_url: 'http://localhost' 
    redirect_after_connect: false 
    redirect_after_connect_url: '' 
    connect_signin_url: 'sfFacebookConnectAuth/signin' 
    app_url: '/my-app' 
    guard_adapter: ~ 
    js_framework: none # none, jQuery or prototype. 

    # It is highly recommended to use a js framework if you want a correct experience in IE 

    sf_guard_plugin: 
    profile_class: sfGuardUserProfile 
    profile_field_name: user_id 
    profile_facebook_uid_name: facebook_uid # WARNING this column must be of type bigint ! 100000398093902 is a valid uid for example ! 
    profile_email_name: email 
    profile_email_hash_name: email_hash 

    facebook_connect: 
    load_routing:  true 
    user_permissions: [] 


[layout.php] 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<?php use_helper('sfFacebookConnect') ?> 
<?php include_http_metas() ?> 
<?php include_metas() ?> 
<?php include_title() ?> 
<link rel="shortcut icon" href="/favicon.ico" /> 
</head> 
<body> 

<?php echo $sf_content ?> 

<?php include_bottom_facebook_connect_script(); ?> 

</body> 
</html> 



[actions.class.php] 

<?php 

/** 
* facebook actions. 
* 
* @package 
* @subpackage facebook 
* @author  Your name here 
* @version SVN: $Id: actions.class.php 12479 2008-10-31 10:54:40Z fabien $ 
*/ 
class homeActions extends sfActions 
{ 
    /** 
    * Executes index action 
    * 
    * @param sfRequest $request A request object 
    */ 

    public function executeIndex(sfWebRequest $request) 
    { 
     sfFacebook::requireLogin(); 
     //get the user object 
     $user = $this->getUser(); 

     // facebook user id 
     $this->fb_uid = $user->getCurrentFacebookUid(); 
     // get or create user based on fb_uid 
     $fb_user = sfFacebook::getOrCreateUserByFacebookUid($this->fb_uid); 
    } 
} 



[indexSuccess.php] 

<?php if ($sf_user->isFacebookConnected()): ?> 

<fb:serverfbml style="width: 740px;"> 
    <script type="text/fbml"> 
     <fb:fbml> 
      <fb:request-form target="_top" action="[where to redirect after invite]" method="post" type="[name of your app]" content="[text the user will receive]&lt;fb:req-choice url=&quot;http://apps.facebook.com/[your app]/&quot; label=&quot;Accept!&quot; " image="" invite="true"> 
       <fb:multi-friend-selector cols="4" actiontext="[some text above the invite form]" /> 
      </fb:request-form> 
     </fb:fbml> 
    </script> 
</fb:serverfbml> 

<?php else: ?> 
<p>Ooops?</p> 
<br /> 
<?php endif; ?> 
+1

Ваш URL-адрес обратного вызова должен быть доступен извне. Localhost не будет работать вообще. Загрузите свой код на сервер и измените URL-адрес обратного вызова. – ownking

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