2013-05-30 1 views
1

Я пытаюсь войти в систему с facebook, работая на сайте Yii, используя Crugeconnector. http://yiiframeworkenespanol.org/wiki/index.php?title=CrugeConnector. Он написан на испанском языке, но Google Translate хорошо работает с ним.С трудом с YII Crugeconnector

В любом случае моя проблема на данный момент заключается в том, что функция успеха не называется, и я понятия не имею, почему. Следующий код находится в моем main.php в массиве компонентов.

'crugeconnector'=>array(
'class'=>'ext.crugeconnector.CrugeConnector', 
    'hostcontrollername'=>'site', 
    'onSuccess'=>array('site/loginsuccess'), 
    'onError'=>array('site/loginerror'), 
    'clients'=>array(
     'facebook'=>array(
      // required by crugeconnector: 
      'enabled'=>true, 
      'class'=>'ext.crugeconnector.clients.Facebook', 
      'callback'=>'http://smecontracts.ie/6/facebook-callback.php', 
      // required by remote interface: 
      'client_id'=>"290200194448698", 
      'client_secret'=>"0608f1e94db5a3a8b6612af1c61fb25d", 
      'scope'=>'email, read_stream', 
     ), 

Следующая партия кода находится под моим контроллером сайта.

public function actionLoginSuccess($key){ 
    error_log("In Sitecontroller successful login page", 0); 
    $loginData = Yii::app()->crugeconnector->getStoredData(); 
    // loginData: remote user information in JSON format. 

    $info = $loginData; 
    error_log($info, 0); 
    $this->renderText('<h1>Welcome!</h1><p>'.$info.'</p> key='.$key); 
    $this->redirect(Yii::app()->params["GREETINGS_PAGE_LINK"]); 
} 

Функция actionLoginSuccess никогда не вызывается. У меня есть обращения к журнальным файлам, которые никогда не вызываются, как это видно выше. Наконец, facebook-callback.php выглядит следующим образом.

<?php 
error_log("In facebook-callback page", 0); 
$yii=dirname(__FILE__).'/../yii/framework/yii.php'; 
$config=dirname(__FILE__).'/protected/config/main.php'; 

defined('YII_DEBUG') or define('YII_DEBUG',false); 
defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3); 

$_GET['r'] = '/site/crugeconnector'; // <--using 'site' ? 
$_GET['crugekey'] = 'facebook';   // <--facebook key 
$_GET['crugemode'] = 'callback'; 

require_once($yii); 
Yii::createWebApplication($config)->run(); 
?> 

Эта страница называется. Ошибка error_log вызывает вызов, но единственное, что происходит, это то, что пользователь возвращается на главную страницу приветствия на моем веб-сайте, которая была установлена ​​в приложении для создания facebook. Я понятия не имею, куда идти отсюда, мне нужно получить информацию из facebook и создать учетную запись с помощью Yii, что было бы сделано довольно легко, если бы функция успеха входа работала, но есть моя проблема.

Спасибо за любую помощь.

ответ

0

Я думаю, что вы поместили эту функцию в контроллер сайта, и если функция существует, чем положить только одну строку.

public function actions() { 
    return array(
     'crugeconnector' => array('class' => 'CrugeConnectorAction'), 
    ); 
} 

И кнопка использования Facebook это:

<?php if(Yii::app()->crugeconnector->hasEnabledClients){ ?> 
<div class='crugeconnector'> 
    <span>Use your Facebook or Google account:</span> 
    <ul> 
    <?php 
     $cc = Yii::app()->crugeconnector; 
     foreach($cc->enabledClients as $key=>$config){ 
      $image = CHtml::image($cc->getClientDefaultImage($key)); 
      echo "<li>".CHtml::link($image, 
       $cc->getClientLoginUrl($key))."</li>"; 
     } 
    ?> 
    </ul> 
</div> 
<?php } ?> 
1

им автора по этому расширению Yii. проблема не сама обратная связь. проблема заключается в ваших собственных правилах доступа. попробуйте сделать эти действия, требуемые расширением, свободными от пользователя, другими словами, эти действия должны быть вне любого правила доступа. В вашем заявлении yii сообщите системе, что это действие разрешено выполнять пользователем anonymouse (* (asterisc) в правилах доступа).

надеюсь, что это вам поможет.

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

  • Нет связанных вопросов^_^