2013-03-12 83 views
1

使用Facebook身份验证时出现问题。facebook重定向

<?php 
$user = null; 
try{ 
    include_once "fb/facebook.php"; 
} 
catch(Exception $o){ 
    error_log($o); 
} 
$facebook = new Facebook(array(
    'appId' => $fbconfig['appid'], 
    'secret' => $fbconfig['secret'], 
    'cookie' => true 
)); 

$loginUrl = $facebook->getLoginUrl(array(
    'scope' => 'publish_stream,email', 
    //'redirect_uri' => 'https://www.facebook.com/pages/MediaEngine/304221192963546?id=304221192963546&sk=app_143090482526977' 
)); 
$user = $facebook->getUser(); 
if($user){ 
    try{ 
     $user_profile = $facebook->api('/me'); 
     $permissions = $facebook->api('/me/permissions');         
     }catch(FacebookException $e){     
     } 
     }else{ 
     echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>"; 
} 
?> 

当用户接受的应用程序,这将用户重定向到标签页(http://apps4you.hu),用户不会留在Facebook上,但只有第1次会做,如果用户关闭,回来的应用程序在Facebook上(已经过身份验证),它在iframe中工作正常。 如果我使用redirect_uri => my_app,它会重定向,重定向和重定向,但永远不会工作的应用程序,浏览器只是加载和loanding,但没有发生。 我花了几天的时间来解决这个问题,但我找不到任何解决方案。 任何想法什么是错的?

回答

0

变化$ loginUrl如下,并尝试:

$ _SESSION [ '状态'] = MD5(uniqid(RAND(),TRUE)); // CSRF保护 $ loginUrl _url =“https://www.facebook.com/dialog/oauth?client_id=” 。 APP_ID。 “& redirect_uri =”。 urlencode($ next)。 “& state =” 。 $ _SESSION ['state']。 “& scope =”。$ permissions;

+0

我试过但没有工作:S – Norbert 2013-03-12 14:49:12