我的canvas app
和page-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'];
答案 0 :(得分:2)
看起来像$ user = $ facebook-&gt; getUser();永远不会被称为
是什么让你这么想? [1]
代码片段中没有任何内容可以阻止它被执行 - 更有可能的是,它只返回0,因为它无法识别用户。这通常表明传递会话ID的问题,通常是由浏览器拒绝第三方cookie引起的。
[1]通过检查代码实际执行的操作来调试验证内容,而不仅仅是以“看起来像”方式猜测。