0

在这个简单的 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->get_loggedin_user(),但 FBXML 确实渲染了个人资料图片,为什么?

我如何在 PHP 中获取用户信息,而不是在 JS 中?

4

2 回答 2

1

看来您不能将 localhost 用作域/测试平台。

在 fb 应用程序设置中将 localhost 更改为有效域,并将http://localhost/xd_receiver.htm更改为 sth valid

于 2010-01-10T09:16:27.957 回答
0

您可以使用“users_getInfo”检索许多信息:

$user_details=$fb->api_client->users_getInfo($fb_user, array('last_name','first_name','pic_square'));

但你首先必须让登录工作。您是否在 facebook 上创建了应用程序?你复制xd接收器了吗?我不知道是否允许本地主机。

这是我写的教程。

于 2010-01-18T10:23:07.370 回答