【问题标题】:Facebook PHP SDK - check for userIDFacebook PHP SDK - 检查用户 ID
【发布时间】:2013-03-25 23:21:33
【问题描述】:

这可能很简单,但我就是不明白。我正在检查 $userID,如果存在则显示注销 url,否则显示登录 url,但它总是绕过对 userID 的条件检查,即使我正在打印它并且它存在!我一直在用头撞它一段时间,我认为不同的观点可能会有所帮助......

<?php
    require_once("fb_login/facebook.php");
    $facebook = new Facebook(array(
      'appId' => 'MYAPPID',
      'secret'=> 'MYSECRETID'
    ));
    $userId = $facebook->getUser();
    if ($userID) {
        echo("userID is: $userId");
        // $params = array( 'next' => 'http://localhost/bcbooks-repo/index_new.php' );

        $logoutUrl = $facebook->getLogoutUrl(); // $params is optional. 
        echo '<a href="' . $logoutUrl . '">logout</a>';
        $facebook->destroySession();
    }
    else{
        header("Location: {$loginURL}");
        $userId = $facebook->getUser();
        $accessToken = $facebook->getAccessToken();
        $params = array(
          'scope' => 'read_stream, friends_likes',
          'redirect_uri' => 'http://localhost/bcbooks-repo/index_new.php'
        );

        $loginUrl = $facebook->getLoginUrl($params);
        print_r($_SESSION);
        echo("userID is: $userId");
        echo '<a href="' . $loginUrl . '">login</a>';
    }


?>

【问题讨论】:

  • 您的变量有不同的名称 $userId != $userID 在 if 语句中丢失大写 D 并将其变为小写,因为 $userID 将始终为空/null!

标签: php facebook facebook-php-sdk


【解决方案1】:

根据我上面的评论

   $userId = $facebook->getUser();
   if ($userID) { 
    echo("userID is: $userId");
    // $params = array( 'next' => 'http://localhost/bcbooks-repo/index_new.php' );

    $logoutUrl = $facebook->getLogoutUrl(); // $params is optional. 
    echo '<a href="' . $logoutUrl . '">logout</a>';
    $facebook->destroySession();
   }

应该是

   $userId = $facebook->getUser();
   if ($userId) { // <- notice lowercase d
    echo("userID is: $userId");
    // $params = array( 'next' => 'http://localhost/bcbooks-repo/index_new.php' );

    $logoutUrl = $facebook->getLogoutUrl(); // $params is optional. 
    echo '<a href="' . $logoutUrl . '">logout</a>';
    $facebook->destroySession();
   }

【讨论】:

  • 哈哈别着急,我们都去过
  • 嘿,Tommy,我在使用另一个 Facebook PHP SDK 时遇到了问题(可能有点困难!) - 你能帮我解决这个问题吗? stackoverflow.com/questions/15621586/…
  • 您好,我已经回答了您的问题。我还进行了编辑以从问题中的代码中删除您的 app_id 和 app_secret。你不想发布这些。
  • 谢谢。好点子。不幸的是,我现在正在上课,但我回家后会试试看。你明白问题是什么吗?这几乎就像每次页面加载时我都是从头开始一样。你认为这可能与它在本地主机上运行有关吗?
  • localhost 可能是个问题。但是将 js-sdk 与 php-sdk 结合使用应该可以按照我在答案中的建议工作。我认为法比奥建议的问题是他没有订阅“登录”事件,所以我认为它没有正确触发。试试我修改后的代码,看看它是否有效
猜你喜欢
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多