在这个简单的php文件中:(http://gist.github.com/273402)
<?php
session_start();
include_once 'libraries/facebook/facebook.php';
//$fb_user=$facebook->get_loggedin_user();
?>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php/en_US" type="text/javascript"></script>
<script type="text/javascript">
FB.init("PUBLIC_KEY", "http://localhost/xd_receiver.htm",{"reloadIfSessionStateChanged":true});
</script>
</head>
<body>
<h1>User index</h1>
<fb:login-button onlogin="window.location.reload(true)"></fb:login-button>
<fb:profile-pic uid="loggedinuser" size="square" facebook-logo="true"></fb:profile-pic>
<?php
$facebook = new Facebook("PUBLIC_KEY","SECRET");
if($facebook->get_loggedin_user()){
echo "logged";
} else {
echo "not-logged";
};
?>
</body>
</html>
我无法获得$ facebook-&gt; get_loggedin_user(),但FBXML会渲染个人资料照片,为什么?
如何在PHP中获取用户信息,而不是在JS?
答案 0 :(得分:1)
似乎你不能将localhost用作域/测试平台。
在fb应用程序设置中将localhost更改为有效域,并将http://localhost/xd_receiver.htm更改为有效
答案 1 :(得分:0)
您可以使用“users_getInfo”检索许多信息:
$ user_details = $ fb-&gt; api_client-&gt; users_getInfo($ fb_user,array('last_name','first_name','pic_square'));
但首先必须让登录工作。你在Facebook上创建了应用程序吗?你复制了xd接收器吗?我不知道是否允许localhost。
这是我写的tutorial。