2

我的應用程序在粉絲頁面內,當我請求權限時它將顯示對話框。 問題是用戶接受後,他們將被重定向到真正的應用程序頁面(網址在這裏的應用程序託管)授予權限後重定向到Facebook應用程序頁面

爲更好地瞭解我與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á'; 
     } 
    } 

?> 

感謝

回答

0

你可以試試redirect_uri paramaeter,

例:

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

希望這會幫助你..謝謝..

+0

嗨, 我已經試過這個,我現在再試一次,但不工作後,重定向到URL Facebook顯示消息: '發生錯誤。請稍後再試。' 謝謝 – 2012-03-02 16:04:07