我正在开发一个网页,我正在尝试通过PHP SDK登录用户。
我已将我的文件index.php
编码为facebook
文件夹,仅用于测试,以我的域为根。出于任何奇怪的原因,当我连接时,我获得了身份验证代码,但我尝试调用$facebook -> getUser();
并返回0
!如果我尝试使用$facebook-> getAccessToken();
获取令牌,它也会正确返回。
这是我设计的代码。
代码的第一部分,请求身份验证,然后重定向到我尝试获取callback.php
的{{1}}文件。这是代码:
userId
Index.php
<?php
require_once ('facebook.php');
$facebook = new Facebook($config);
$facebook = new Facebook(array(
'appId' => '378488665495077',
'secret' => 'XXXX',
));
$login_url = $facebook->getLoginUrl(array('redirect_uri'=>"http://myweb.com/facebook/callback.php"));
?>
<a href="<?php echo $login_url;?>">Login with facebook</a>
callback.php
我得到的网址如下:http://myweb.com/facebook/callback.php?code=AQjQ6 .....
有谁知道这个问题?在我看来,似乎必须在http://developers.facebook.com中配置一些不好的东西,但我真的不知道是什么。
答案 0 :(得分:0)
在重定向时,当用户登陆您的页面时,会话正在写入浏览器。
示例:
//注意:在facebook将用户重定向回我的网站后“登录 页面“我将该用户重定向回他们开始使用的页面 这允许创建会话,隐藏传递的代码 来自网址。缺点是,需要更长时间,平均登录可以向上 完成重定向的时间为3到5秒。
session_start();
require './src/facebook.php';
$facebook = new Facebook(array(
'appId' => 'your app id here',
'secret' => 'your app secret',
'cookie' => true, // enable optional cookie support
));
try {
$user = $facebook->getUser();
} catch (FacebookApiException $e) {
//error_log($e);
$user = null;
}
if($user){
$access_token = $facebook->getAccessToken();
}
$params = array(
'redirect_uri' => 'Your redirect url',
);
$loginUrl = $facebook->getLoginUrl($params);
$params = array(
'next' => 'Your redirect url'
);
$logoutUrl = $facebook->getLogoutUrl($params);