2011-09-04 21 views
0

當我使用以下代碼時,$ user_profile = $ facebook-> api('/我');將爲我顯示管理員用戶的信息,但是當我切換到測試用戶時,權限對話框不會顯示給測試用戶添加應用程序,$ user_profile不會被定義。

我似乎無法找到代碼的一個例子,它似乎在確保應用程序已獲得授權並且用戶已通過身份驗證方面正確地執行了所有操作。我從舊的FB開發人員論壇上看到,很多人似乎對新程序有同樣的問題。

下面的代碼:

<?php 
$appId = "myid"; 
$secret = "mysecret"; 
$canvasurl = "http://www.example.com/myappname/"; 
$canvas = "http://apps.facebook.com/myappname/"; 
$scope = "user_website,email,publish_stream,user_birthday,user_location,user_work_history,user_about_me,user_hometown,manage_pages,offline_access"; 
require_once "facebook.php"; 
$facebook = new facebook(array(
'appId' => $appId, 
'secret' => $secret 
) 
); 
$user = $facebook->getUser(); 
if ($user) { 
try { 
$user_profile = $facebook->api('/me'); 
} 
catch (FacebookApiException $e) { 
$user = null; 
} 

if (!$user) { 
$loginUrl = $facebook->getLoginUrl(
array(
'scope' => $scope, 
'redirect_uri' => $canvas 
) 
); 

echo <<<LU 
<script type="text/javascript"> 
top.location.href = $loginUrl; 
</script> 
LU; 
} 
} 
print_r($user_profile); 
?> 

感謝。

回答

0

我會後我的代碼

<?php 
    $fbconfig['appid' ] = ""; 
    $fbconfig['secret'] = ""; 

    $fbconfig['baseUrl'] = ""; 
    $fbconfig['appBaseUrl'] = ""; 

    $user   = null; 

    try{ 
     include_once "src/facebook.php"; 
    } 
    catch(Exception $o){ 
     echo '<pre>'; 
     print_r($o); 
     echo '</pre>'; 
    } 


    $facebook = new Facebook(array(
     'appId' => $fbconfig['appid'], 
     'secret' => $fbconfig['secret'], 
     'cookie' => true, 
    )); 

    //Facebook Authentication part 

    $user  = $facebook->getUser(); 

    $loginUrl = $facebook->getLoginUrl(
     array(
      'canvas' => 1, 
      'fbconnect' => 0, 
      'scope'   => 'user_status,publish_stream,user_photos' 
     ) 
    ); 

    if ($user) { 
     try { 

     $user_profile = $facebook->api('/me'); 

     } catch (FacebookApiException $e) { 
     $user = null; 
     } 
    } 

    if (!$user) { 
     echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
     exit; 
    } 
?> 
+0

萬歲。我有一個測試用戶彈出了權限管理。我唯一的問題是,在測試用戶給予權限後,將我留在我的服務器上而不是Facebbok。即我打'允許',而不是結束在https://apps.facebook.com/myapp我被髮送到https://www.example.com/myapp任何想法爲什麼它會重定向到我的服務器不是Facebook? – Ian

+0

嘗試並使用修改後的版本.. – glarkou