-2

我有几个页面,canvas apppage-a用户登录到 oAuth,然后被定向到page-b具有以下代码的页面。
当我使用 javascript api 登录 oAuth 时,我可以获得对用户对象的完全访问权限。
但是当我转到另一个页面时,下面的代码会出错。回声出来了,但

没有。 看起来永远不会被调用,或者正如所指出的那样,它很有可能。返回 0tokengetUser

$user = $facebook->getUser();CBroe

有没有办法在user object没有 javascripts api 的情况下只进行 php 访问,以便我可以逐页遍历?

require_once('/facebook-php-sdk-3.1.1-25-6c82b3f/src/facebook.php');
$facebook = new Facebook(array(
    'appId'  => '<MY-APP-ID>',
    'secret' => '<MY-APP-SECRET>'
));

// Get User ID
$user = $facebook->getUser();
$token = $facebook->getAccessToken();

if ($user) {
    try {
        $facebook->setFileUploadSupport(true);

        $fbUser = $facebook->api('/me');

    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}

/*      **          **          **
Undefined variable: fbUser 
**          **          **          */

//print_r($fbUser); 
echo $fbUser['id']; 
echo '<br/>';
echo $fbUser['name']; 
4

1 回答 1

2

看起来像 $user = $facebook->getUser(); 永远不会被调用

什么让你有那个想法?[1]

这段代码中没有任何内容可以阻止它被执行——更有可能的是,它只是返回 0,因为它无法识别用户。这通常指向传递会话 id 的问题,通常是由浏览器拒绝第三方 cookie 引起的。


[1] 调试是通过检查代码实际执行的操作来验证内容,而不仅仅是以“看起来像”的方式猜测。

于 2012-11-21T22:02:13.387 回答