简体   繁体   English

facebook-> api('/ me')在localhost上不起作用。

[英]facebook->api('/me') not working on localhost.

<?php

require 'facebook/facebook.php';
require 'config/fbconfig.php';
require 'config/functions.php';

define('APP_ID', '******************');
define('APP_SECRET', '***********************');

$facebook = new Facebook(array(
            'appId' => '******************',
            'secret' => '***********************',
            'cookie' => true
        ));

$session = $facebook->getSession();



if (!empty($session)) {
    # Active session, let's try getting the user id (getUser()) and user info (api->('/me'))
    try {

        $uid = $facebook->getUser();
        print_r($uid);
        $user = $facebook->api('/me');
        facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYPEER] = false; 
        facebook::$CURL_OPTS[CURLOPT_SSL_VERIFYHOST] = 2;
    } catch (Exception $e) {




    }

    if ($user) {
        # User info ok? Let's print it (Here we will be adding the login and registering routines)
        echo '<pre>';
        print_r($user);
        echo '</pre><br/>';
        $username = $user['name'];
        $user = new User();
        $userdata = $user->checkUser($uid, 'facebook', $username);
        if(!empty($userdata)){
            session_start();
            $_SESSION['id'] = $userdata['id'];
 $_SESSION['oauth_id'] = $uid;

            $_SESSION['username'] = $userdata['username'];
            $_SESSION['oauth_provider'] = $userdata['oauth_provider'];
            header("Location: home.php");
        }
    } else {
        # For testing purposes, if there was an error, let's kill the script

        die("There was an error.");
    }
} else {
    # There's no active session, let's generate one
   // $login_url = $facebook->getLoginUrl();
     $loginUrl = $facebook->getLoginUrl( array(
                           'canvas'    => 1,
                           'fbconnect' => 0,
                           'req_perms' => 'email,publish_stream',
                       'next' => 'http://localhost/login_twitbook/',
                              'cancel_url' => 'http://localhost/login_twitbook/'
                      ) );
    header("Location: " . $login_url);
}
?>

The $user = $facebook->api('/me'); $ user = $ facebook-> api('/ me'); doesnot working properly its always returns nothing. 不能正常工作,它总是不返回任何内容。 pls help me to solve this problem. 请帮助我解决这个问题。 I'm working on localhost.$uid = $facebook->getUser() its returns the value but the $user doesnt return 我在localhost上工作。$ uid = $ facebook-> getUser()它返回值,但$ user不返回

Try changing the getCode function in the base_facebook.php file change all the $_REQUEST to $_GET. 尝试更改base_facebook.php文件中的getCode函数,将所有$ _REQUEST更改为$ _GET。 Not sure why this hasn't been fixed yet but I was pulling my hair out trying to figure out why it was returning 0 for the user until I did this, now it works flawlessly. 不知道为什么还没有解决这个问题,但是我一直在努力弄清楚为什么在我这样做之前为什么一直为用户返回0,现在它可以正常工作了。

Should be on or around line 680 of the file and there are 4 to change. 应该在文件的第680行上或附近,并且有4个要更改。

  protected function getCode() {
if (isset($_GET['code'])) {
  if ($this->state !== null &&
      isset($_GET['state']) &&
      $this->state === $_GET['state']) {

    // CSRF state has done its job, so clear it
    $this->state = null;
    $this->clearPersistentData('state');
    return $_GET['code'];
  } else {
    self::errorLog('CSRF state token does not match one provided.');
    return false;
  }
}

return false;

} }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM