Facebook PHP SDK:iframe页面选项卡上的用户ID

时间:2012-02-25 11:14:01

标签: php facebook

我在我自己的页面上,我是管理员,我已经“喜欢”这个问题了,但这段代码:

require_once "api/facebook.php";

$facebook = new Facebook(array(
    'appId'  => APP_ID,
    'secret' => SECRET,
    'cookie' => true
));

$signedrequest = $facebook->getSignedRequest();
$uid = $facebook->getUser();

给我这个数据:

### USER ID ###

0

### SIGNED REQUEST ###

Array
(
    [algorithm] => HMAC-SHA256
    [issued_at] => 1330166798
    [page] => Array
        (
            [id] => 304887859549216
            [liked] => 1
            [admin] => 1
        )

    [user] => Array
        (
            [country] => us
            [locale] => en_US
            [age] => Array
                (
                    [min] => 21
                )
        )
)

因此,getUser()= 0和签名请求中的用户ID - 为空。 我做错了什么?

3 个答案:

答案 0 :(得分:1)

默认情况下,“用户”是页面,这样您就可以显示与您的应用相关的页面内容。要确定用户是谁,您可以浏览标准后端重定向,就像用户来到您的应用程序而没有会话/过期令牌一样。但是你需要记住你所在的页面,因为Facebook只在初始iframe加载时传递了这些信息。

为了获得更好的用户体验,我会使用Facebook javascript SDK。您可以检查javascript中的所有内容,并确定用户是谁而不执行任何重定向。您甚至可以在不重新加载页面的情况下提示授权。如果用户已经授权您的应用,他们看不到任何更改并且没有提示,但您现在与该用户进行“会话”并在javascript中知道他们的ID。

https://developers.facebook.com/docs/reference/javascript/FB.login/

答案 1 :(得分:0)

对于getUser,您需要登录您的应用程序,显示登录/权限对话框

答案 2 :(得分:0)

只是为了添加到此,您目前无法获得javascript SDK中的所有内容。它没有为您提供PHP SDK所做的任何用户或页面(页面选项卡)数据。