【问题标题】:redirect to facebook app page after grant permissions授予权限后重定向到 Facebook 应用页面
【发布时间】:2012-03-20 15:40:14
【问题描述】:

我的应用位于粉丝页面内,当我请求许可时,它会显示对话框。 问题是在用户接受后,他们被重定向到真实的应用页面(这里是应用程序的 URL)

为了更好地理解,我有使用 facebook PHP SDK 生成的 url

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á';
        }
    }

?>

谢谢

【问题讨论】:

    标签: facebook redirect permissions facebook-php-sdk facebook-page


    【解决方案1】:

    你可以试试redirect_uri参数,

    例如:

    $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>");
    

    希望这会对你有所帮助.. 谢谢..

    【讨论】:

    • 嗨,我已经试过了,现在我又试了一次,但还是不行,重定向到 url facebook 后显示一条消息:'发生错误。请稍后再试。'谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多