简体   繁体   中英

facebook PHP sdk cannot login

I have been trying to use facebook's PHP sdk to login.

Following is one of my codes.

<?php
session_start();
require_once( 'lib/Facebook/FacebookSession.php' );
require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'lib/Facebook/FacebookRequest.php' );
require_once( 'lib/Facebook/FacebookResponse.php' );
require_once( 'lib/Facebook/FacebookSDKException.php' );
require_once( 'lib/Facebook/FacebookRequestException.php' );
require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
require_once( 'lib/Facebook/GraphObject.php' );
require_once('lib/Facebook/GraphUser.php');
require_once('lib/Facebook/GraphSessionInfo.php');
require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'lib/Facebook/Entities/AccessToken.php' );
require_once( 'lib/Facebook/Entities/SignedRequest.php' );

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;

// Initialize application by Application ID and Secret
FacebookSession::setDefaultApplication('app_id','app_secret');

// Login Healper with reditect URI
$helper = new FacebookRedirectLoginHelper( 'http://124.125.244.163/rtCamp/home.php' );

try {
  $session = $helper->getSessionFromRedirect();
}
catch( FacebookRequestException $ex ) {
  // Exception
}
catch( Exception $ex ) {
  // When validation fails or other local issues
}

// Checking Session
if(isset($session))
{
  // Request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // Responce
  $data = $response->getGraphObject();

  // Print data
  echo  print_r( $data, 1 );
}
else
{
  // Login URL if session not found
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
?>  

Now the problem I am facing is that there is some problem with the line where I can get a session. ie $session = $helper->getSessionFromRedirect() after the page redirects from facebook.

Now I even implemented this guy's entire github dir with the same login code here

still, my code stops working after that line and there is not a single error displayed. I tried numerous solutions none of them work. I downloaded the stable Facebook PHP SDK 4.0.0 and I am running a home LAMP server with PHP 5.4. I am stuck.

UPDATE: ERROR comes in Apace log

PHP Fatal error: Class 'Facebook\\HttpClients\\FacebookStreamHttpClient' not found in /var/www/rtCamp/lib/Facebook/FacebookRequest.php on line 166, referer: http://124.125.244.163/rtCamp/home.php

<?php
require_once( 'lib/Facebook/FacebookSession.php' );
require_once( 'lib/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'lib/Facebook/FacebookRequest.php' );
require_once( 'lib/Facebook/FacebookResponse.php' );
require_once( 'lib/Facebook/FacebookSDKException.php' );
require_once( 'lib/Facebook/FacebookRequestException.php' );
require_once( 'lib/Facebook/FacebookAuthorizationException.php' );
require_once( 'lib/Facebook/GraphObject.php' );
require_once('lib/Facebook/GraphUser.php');
require_once('lib/Facebook/GraphSessionInfo.php');
require_once( 'lib/Facebook/HttpClients/FacebookHttpable.php' );
require_once( 'lib/Facebook/HttpClients/FacebookCurl.php' );
require_once( 'lib/Facebook/HttpClients/FacebookCurlHttpClient.php' );
require_once( 'lib/Facebook/Entities/AccessToken.php' );
require_once( 'lib/Facebook/Entities/SignedRequest.php' );

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphUser;
use Facebook\GraphSessionInfo;
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;


session_start();

$app_id='';
$app_secret='';
$redirect_url='http://124.125.244.163/rtCamp/home.php';
//  Initialize application by Application ID and Secret
FacebookSession::setDefaultApplication($app_id,$app_secret);

// Login Healper with reditect URI
$helper = new FacebookRedirectLoginHelper($redirect_url);
$session = $helper->getSessionFromRedirect();


// Checking Session
if(isset($session))
{
  // Request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // Responce
  $data = $response->getGraphObject(GraphUser::classname());
  $name=$graph->getName();
  echo "hi $name";
  // Print data
  echo  print_r( $data, 1 );
}
else
{
  // Login URL if session not found
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}

/*
try {
  $session = $helper->getSessionFromRedirect();
}
catch( FacebookRequestException $ex ) {
  // Exception
}
catch( Exception $ex ) {
  // When validation fails or other local issues
}

// Checking Session
if(isset($session))
{
  // Request for user data
  $request = new FacebookRequest( $session, 'GET', '/me' );
  $response = $request->execute();
  // Responce
  $data = $response->getGraphObject();

  // Print data
  echo  print_r( $data, 1 );
}
else
{
  // Login URL if session not found
  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';
}
*/
?>  

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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