Facebook PHP SDK - api returns empty


Facebook PHP SDK - api returns empty

我正在尝试学习一些facebook的开发,因为人们似乎以某种方式要求facebook集成。

我正试图用PHP SDK让一些像我的名字这样简单的东西在屏幕上回响,但我似乎做不到

我的代码非常基本,正是所需要的

<?php
  require_once('src/facebook.php');
  $config = array(
    'appId' => '14283923YYYYYYY48',
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXXXX',
    'allowSignedRequest' => false
  );
  $facebook = new Facebook($config);
  $user_id = $facebook->getUser();
?>
<html>
  <head></head>
  <body>
  <?php
    if($user_id) {
        $user_profile = $facebook->api('/me','GET');
        echo "Name: " . $user_profile['name'];
        if (is_null($user_profile))
            echo "NULL";
        else echo "NOT NULL";
    }
  ?>
  </body>
</html>

名称没有显示,正如您所看到的,我测试了$user_profile变量,结果为NULL,所以我认为api函数不起作用,没有返回任何内容。

我的代码错了吗?还是我应该去别处寻找这个问题?任何解决问题的提示或建议都将非常有帮助。

您需要提供一个登录工具,让用户明确允许使用其用户ID,并创建一个访问令牌。这可以在PHP SDK或JavaScript SDK中完成(两者都可以实现双重功能)。

链接:

https://developers.facebook.com/docs/facebook-login/

**还请查看以下内容:Facebook PHP SDK/Graph API-返回我的姓名/信息,但不是其他人?

<?php
if($user_id) {
    $user_profile = $facebook->api('/me','GET');
    echo "Name: " . $user_profile['name'];
    if (is_null($user_profile))
        echo "NULL";
    else echo "NOT NULL";
}
?>

更改上方的代码部分

$user_profile = $facebook->api('/me','GET');

$user profile = $facebook->api($user_id, 'GET')

然后你可以得到用户档案谁使用脸书登录你的网站

希望这对有帮助

如果您碰巧在codeigniter 3.x&部署在aws ELB中2018年,配置或fb应用程序设置中提到的facebook回调url是不够的,使用ssl,您需要手动编辑base_facebook.php,并在函数getAccessTokenFromCode()参数中将redirect_uri从空白替换为https url

protected function getAccessTokenFromCode($code, $redirect_uri = 'https://www.example.com/index/fblogin') {
    if (empty($code)) {
      return false;
    }
.....