перенаправить на страницу приложения Facebook после предоставления разрешений - PullRequest
2 голосов
/ 02 марта 2012

Мое приложение находится на странице поклонника, когда я запрашиваю разрешение, оно покажет диалоговое окно. Проблема заключается в том, что после принятия пользователя они перенаправляются на реальную страницу приложения (URL-адрес, на котором размещено приложение)

для лучшего понимания URL-адрес, сгенерированный с помощью Facebook PHP SDK

https://www.facebook.com/dialog/oauth?client_id=341572315885516&redirect_uri=https%3A%2F%2Fmywebapp.com%2Fyii%2Folivi%2Ffacebook%2Fapp%2Fid%2F1%2F&state=40e532d364f67631cfc1ef6061609157&canvas=1&fbconnect=0&scope=user_about_me%2Cuser_birthday

Как мы видим, перенаправление за пределы Facebook, я хочу перенаправить обратно в этом случае: https://www.facebook.com/mypage/app_341572315885516

Есть ли способ решить эту ситуацию? Я много чего перепробовал, ничего не работает ...

Где мой код:

<?php $userid = Yii::app()->facebook->getUser(); ?>
<?php $results = NULL;//$results = Yii::app()->facebook->api('/me'); ?>

<?php 

    $signed_request = Yii::app()->facebook->getSignedRequest();
    if(!isset($signed_request['page']) || !isset($signed_request['page']['liked']))
    {
        $this->renderPartial('_nofan', array('model'=>$model));
    }
    else
    {
        if(!$signed_request['page']['liked'])
        {
            $this->renderPartial('_nofan', array('model'=>$model));
        }
        else
        {
            try
            {
                $results = Yii::app()->facebook->api('/me');
            }
            catch (FacebookApiException $e) {

            }
            if(!$userid || !$results) 
            {
                $loginUrl = Yii::app()->facebook->getLoginUrl(array('scope'=>'user_about_me,user_birthday'));
                /*echo "<script type='text/javascript'>top.location.href = '{$loginUrl}';</script>";*/
                Yii::app()->clientScript->registerScript('login-perm', 'top.location.href = "'.$loginUrl.'";', CClientScript::POS_HEAD);
                //$this->redirect($loginUrl);
                /*Yii::app()->facebook->addJsCallback("FB.login(function(response) {
                                                  if (response.authResponse) {
                                                      // user is logged in and granted some permissions.
                                                  } else {
                                                    // User cancelled login or did not fully authorize.
                                                  }
                                                }, {scope:'user_about_me,user_birthday'});");*/
            }

            // FAN

            //echo 'Olá';
        }
    }

?>

Спасибо

1 Ответ

0 голосов
/ 02 марта 2012

Вы можете попробовать redirect_uri paramaeter,

Ex:

$redirecturl = https://www.facebook.com/mypageonfacebook/app_APPID;

$params = array('scope' => 'email, publish_actions', 'redirect_uri' => $redirecturl);

$loginUrl = $facebook->getLoginUrl($params);       

echo("<script> top.location.href='".$loginUrl."'</script>");

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

...