php graph api多页面访问用户对象 - 画布应用程序

时间:2012-11-21 21:55:40

标签: php facebook-graph-api

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

token回音已经消除,但getUser没有。{
看起来$user = $facebook->getUser();永远不会被调用,或者CBroe指出,它是概率。返回0

有没有办法让php访问user object没有javascripts api,以便我可以遍历页面到页面?

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']; 

1 个答案:

答案 0 :(得分:2)

  

看起来像$ user = $ facebook-&gt; getUser();永远不会被称为

是什么让你这么想? [1]

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


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