Facebook PHP SDK$uid=$Facebook->;getUser()始终返回0
我正在尝试将我们的DB与facebook API集成在一起,这是非常新的,因此我将非常感谢您的帮助 我总是得到0分 使用Facebook PHP SDK$uid=$Facebook->;getUser()始终返回0,facebook,facebook-graph-api,facebook-javascript-sdk,facebook-php-sdk,facebook-oauth,Facebook,Facebook Graph Api,Facebook Javascript Sdk,Facebook Php Sdk,Facebook Oauth,我正在尝试将我们的DB与facebook API集成在一起,这是非常新的,因此我将非常感谢您的帮助 我总是得到0分 使用 $uid = $facebook->getUser() 我曾研究过类似的问题,但没有找到相关的解决方案 PHP HTML 谢谢 编辑尝试过,但仅使用PHP仍然失败 require('facebook.php'); $facebook = new Facebook( array ( 'appId' => 'xxx', 'secret' =>
$uid = $facebook->getUser()
我曾研究过类似的问题,但没有找到相关的解决方案
PHP
HTML
谢谢
编辑尝试过,但仅使用PHP仍然失败
require('facebook.php');
$facebook = new Facebook( array (
'appId' => 'xxx',
'secret' => 'xxxx',
'cookie' => true
)
);
if ($_REQUEST['act']=="fb")
{
//$next_url = $facebook->getLoginStatusUrl($params);
if ($facebook->getUser()) {
$userProfile = $facebook->api('/me');
$uid = $facebook->getUser();
// do logic
echo $uid ;
echo "ok";
} else {
echo "problem";
$loginUrl = $facebook->getLoginUrl($params = array('scope' => user_birthday,read_stream,'redirect_uri' => 'http://xxxx/index.php?act=success'));
header('Location:' . $loginUrl);
}
}
else if ($_REQUEST['act']=="success")
{
try{
$_SESSION['fbAT'] = $facebook->getAccessToken();
}catch(Exception $e){
trigger_error("FB AccessToken: " . $e->getMessage());
}
$facebook->setAccessToken($_SESSION['fbAT']);
if ($facebook->getUser()) {
$uid = $facebook->getUser();
$userProfile = $facebook->api('/me');
// do logic
echo $uid ;
echo $userProfile;
echo "ok";
} else {
$uid = $facebook->getUser();
echo $uid ;
echo "still problem";
}
我尝试过的一些步骤:
- 沙盒模式已禁用,我已确认应用程序id和密码 还有李>
- 尝试添加header:header('P3P:CP=“IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT”)李>
- 添加了cookie'=>true
- 尝试从静态页面调用它,而不是通过ajax 0
- facebook基本选项卡下仅使用网站
- 在“高级”下,应用程序类型设置为“web”
- 在权限下,默认活动是公共的
- 确保fb_ca_chain_bundle.crt与facebook.php尝试使用的目录相同(与我的php文件相同)
- 仅尝试使用PHP和getLoginUrl以及其他作用域来获取访问权限
- 正在尝试获取和设置访问令牌
$loginUrl = $facebook->getLoginUrl(array( 'scope' => 'read_stream,etc..'));
范围由
在此之后,您应该能够:
$user = $facebook->api("/me");
这将获得一个与用户关联的数组,$user['id']
可能是您要存储的数组,以及任何其他信息,如电子邮件地址-请确保在范围中请求电子邮件
希望能解决问题 您需要确保用户已通过以下方式登录:
$loginUrl = $facebook->getLoginUrl(array( 'scope' => 'read_stream,etc..'));
范围由
在此之后,您应该能够:
$user = $facebook->api("/me");
这将获得一个与用户关联的数组,$user['id']
可能是您要存储的数组,以及任何其他信息,如电子邮件地址-请确保在范围中请求电子邮件
希望能解决问题 在window.fbAsyninit中,我已经将cookie和oauth设置为true,这很有效
cookie:true,
oauth : true.
确保在php中也有
cookie' => true.
这将使php代码能够与Windows.fbAsyninit中的JS集成。我已经将cookie和oauth设置为true,这很有效
cookie:true,
oauth : true.
确保在php中也有
cookie' => true.
这将使php代码能够与JS集成。尝试了,但仍然返回了0。我不希望需要再次使用getloginurl登录(因为我已经通过JS登录),但是这样做我仍然会得到0。我已经用代码更新了这个问题使用JavaScript登录Facebook会让用户浏览器访问Facebook api,而不是你的服务器,这将是PHP调用-我将为您做一些阅读,并尝试解释如何将这两种与Facebook通信的方法结合起来,但我突然想到,您需要使用PHP和getLoginUrl
登录,然后将$Facebook->getAccessToken()
传递给您的JavaScript。我会做一些阅读,给你一个更简洁的答案,但现在你应该确保登录后你可以print\r($facebook->api('/me')
并在PHP代码中检索您的信息:$loginUrl=$facebook->getLoginUrl($params=array('scope'=>user\u birth,read\u stream,'redirect\u uri'=>'http://xxxx/index.php?act=success'));
在您的参数周围缺少引号,因为您只是在传递字符串,所以请尝试:$loginUrl=$facebook->getLoginUrl($params=array('scope'=>“用户生日,读取流”,“重定向uri'=>”http://xxxx/index.php?act=success'));代码>哦,还有最后一件事,不要在Header()
之前回显,因为这可能会阻止重定向,因为它仍然会返回0。我不希望需要再次使用getloginurl登录(因为我已经通过JS登录),但是这样做我仍然会得到0。我已经用代码更新了这个问题使用JavaScript登录Facebook会让用户浏览器访问Facebook api,而不是你的服务器,这将是PHP调用-我将为您做一些阅读,并尝试解释如何将这两种与Facebook通信的方法结合起来,但我突然想到,您需要使用PHP和getLoginUrl
登录,然后将$Facebook->getAccessToken()
传递给您的JavaScript。我会做一些阅读,给你一个更简洁的答案,但现在你应该确保登录后你可以print\r($facebook->api('/me')
并在PHP代码中检索您的信息:$loginUrl=$facebook->getLoginUrl($params=array('scope'=>user\u birth,read\u stream,'redirect\u uri'=>'http://xxxx/index.php?act=success'));
在您的参数周围缺少引号,因为您只是在传递字符串,所以请尝试:$loginUrl=$facebook->getLoginUrl($params=array('scope'=>“用户生日,读取流”,“重定向uri'=>”http://xxxx/index.php?act=success'));代码>哦,还有最后一件事,不要在标题()之前回显,因为这可能会阻止重定向