Facebook PHP SDK 3.2.3当我用nginX更改服务器时,getUser()返回0

时间:2015-11-19 04:22:59

标签: php facebook apache nginx facebook-php-sdk

我正在尝试更改具有facebook登录功能的项目服务器。在旧服务器上,getUser()工作正常,但它不适用于新服务器。

OLD SERVER

php 5.4.36 
apache 2.4.10 
facebook sdk 3.2.3

新服务器

php 5.6.14
nginx 1.8.0
facebook sdk 3.2.3

我刚刚更改了服务器,并没有更改任何应用程序代码。 这是我的功能。这在旧服务器上运行良好,但不能在新服务器上运行。

function getFaceBookUserInfo(&$user){

    $config = array('appId' => FACCEBOOK_API_KEY, 
                    'secret' => FACEBOOK_API_SECRET);
    $facebook = new Facebook($config);


if ($facebook->getUser()) {  //this return 0
    try {
        $user = $facebook->api('/me', 'GET');
        //here logic

我使用SDK跟踪代码,最终在下面的函数中破坏了。

facebook.php

/**
   * {@inheritdoc}
   *
   * @see BaseFacebook::getPersistentData()
   */
  protected function getPersistentData($key, $default = false) {
    if (!in_array($key, self::$kSupportedKeys)) {
      self::errorLog('Unsupported key passed to getPersistentData.');
      return $default;
    }

    $session_var_name = $this->constructSessionVariableName($key);
    return isset($_SESSION[$session_var_name]) ?
      $_SESSION[$session_var_name] : $default; //this return $default
  }

在这个函数中,$_SESSION[$session_var_name]没有退出,所以返回$ default,最后getUser()返回0.

我搜索并发现了非常相似的问题,但没有一个答案解决了这个问题。

0 个答案:

没有答案