Facebook PHP SDK$uid=$Facebook->;getUser()始终返回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' =>

我正在尝试将我们的DB与facebook API集成在一起,这是非常新的,因此我将非常感谢您的帮助

我总是得到0分

使用

$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'));哦,还有最后一件事,不要在
标题()之前
回显
,因为这可能会阻止重定向