2012-03-20 67 views
0

我想如果用户登录Facebook,如果是的话我需要将他们的个人资料图片url,名称存储在我的数据库中,以便用户可以在我的web应用程序中发表评论。oauth与facebook

我无法做到这一点,我创建了一个Facebook的网站应用程序,并使用下面的代码auth目的。但其显示“出现错误,请稍后再试。”

任何人请帮助我?或帮助我工作的代码?

<?php 
require_once('../src/facebook.php'); 

$fb_app_id = "key"; 
$fb_secret = "secret"; 
$fb_app_url = "url"; 
$facebook = new Facebook(array(
    'appId' => $fb_app_id, 
    'secret' => $fb_secret, 
    'cookie' => true, 
)); 

$user = $facebook->getUser(); 

if ($user) { 
    // The user is logged in 
    try { 
    $user_profile = $facebook->api('/me'); 
    // Here : API call succeeded, you have a valid access token 
    } catch (FacebookApiException $e) { 
    // Here : API call failed, you don't have a valid access token 
    // you have to send him to $facebook->getLoginUrl() 
    $user = null; 
    } 
} // else : the user is not logged in 


?> 



<?php if ($user): ?> 
    <a href="<?php echo $facebook->getLogoutUrl() ?>">Logout of Facebook</a> 
<?php else: ?> 
    <a href="<?php echo $facebook->getLoginUrl() ?>">Login with Facebook</a> 
<?php endif ?> 
+1

尝试,如果($ user_profile),而不是 max4ever 2012-03-20 15:09:31

+0

您好我试过了...但仍显示出错误.. 。这个脚本是否以app_key和密钥工作到最后? Facebook方面的任何特殊变化? – ramesh 2012-03-20 15:17:23

回答

1

你可以试试这个

require_once('../src/facebook.php'); 
$facebook = new Facebook(array(
    'appId' => 'xxxxxxxxxxxx', 
    'secret' => 'xxxxxxxxxxxx', 
    'cookie' => true, 
)); 

$fb_user_id = $facebook->getUser(); 

try 
{ 
$fb_user_profile = $facebook->api('/me'); 
$me = $facebook->api('/me'); 
} 
catch (FacebookApiException $e) 
{ 

$fb_user_id = NULL; 
} 
$fbid = $me['id']; 
$firstname = $me["first_name"]; 
$lastname = $me["last_name"]; 
$gender = $me["gender"]; 
$email = $me["email"]; 

if ($facebook->getSession()) { 
    echo '<div id="fbc-img"><img src="http://graph.facebook.com/'.$me['id'].'/picture?type=normal" width="56" height="56"></div> 
    <div id="fbc-info">Welkom, '.$firstname.' ! <br><a href="' . $facebook->getLogoutUrl() . '">Logout </a></div> '; 

} else { 
    echo '<a href="https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=YOUR_WEBSITE&scope=email" target="_blank">Login met facebook</a> '; 
} 
+0

感谢您的帮助,当我尝试我收到此消息 致命错误:调用未定义的方法Facebook :: getSession()在/home/aasrayac/public_html/domain.com/fb/examples/index.php在线28 – ramesh 2012-03-20 16:08:08

+0

你有没有更新你的Facebook PHP SDK?这里是一个链接https://github.com/facebook/php-sdk你需要把SRC文件夹放在你的根目录下,并且不要忘记指出require_once到facebook.php文件 – 2012-03-21 08:08:54

+0

看来你没有或没有指出正确的facebook.php文件 – 2012-03-21 11:20:34