2016-11-10 109 views
0

美好的一天家伙,我有我的Facebook登录使用PHP的问题。我做了一切妥当,我承担,但仍然得到错误。我想用更多的知识来帮助我解决这个问题。FB登录网站集成使用PHP sdk

下面是错误页面:

enter image description here

<?php 
 
session_start(); 
 

 
ini_set('display_errors', '1'); 
 
// added in v4.0.0 
 
require_once 'autoload.php'; 
 
require 'functions.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\EntitiesAccessToken; 
 
use Facebook\HttpClientsFacebookCurlHttpClient; 
 
use Facebook\HttpClientsFacebookHttpable; 
 

 
// init app with app id and secret 
 
FacebookSession::setDefaultApplication('APP ID','APP SECRET'); 
 
// login helper with redirect_uri 
 
    $helper = new FacebookRedirectLoginHelper('http://www.xxxxxxxx.com/3rd_party/fbOAuth/fbconfig.php'); 
 
try { 
 
    $session = $helper->getSessionFromRedirect(); 
 
} catch(FacebookRequestException $ex) { 
 
    // When Facebook returns an error 
 
} catch(Exception $ex) { 
 
    // When validation fails or other local issues 
 
} 
 
// see if we have a session 
 
if (isset($session)) { 
 
    // graph api request for user data 
 
    $request = new FacebookRequest($session, 'GET', '/me'); 
 
    $response = $request->execute(); 
 
    // get response 
 
    $graphObject = $response->getGraphObject(); 
 
    $fbid = $graphObject->getProperty('id');    // To Get Facebook ID 
 
    $fbfullname = $graphObject->getProperty('name'); // To Get Facebook full name 
 
    $femail = $graphObject->getProperty('email'); // To Get Facebook email ID 
 
/* ---- Session Variables -----*/ 
 
    $_SESSION['FBID'] = $fbid;   
 
     $_SESSION['FULLNAME'] = $fbfullname; 
 
    $_SESSION['EMAIL'] = $femail; 
 
    checkuser($fuid,$ffname,$femail); 
 
    header("Location: index.php"); 
 
} else { 
 
    $loginUrl = $helper->getLoginUrl(); 
 
header("Location: ".$loginUrl); 
 
} 
 
?>

+0

为什么不只是使用js sdk登录?它是如此容易处理,并没有改变在过去几年:http://www.devils-heaven.com/facebook-javascript-sdk-login/ – luschn

+0

我不太熟悉那位先生。由于我使用的是自定义登录按钮,并且还需要将数据从API存储到本地数据库中,所以我推测PHP SDK将是最合适的 – ComputerMaverick

+0

您仍然可以使用自定义登录按钮,文章解释了如何执行那。你也可以将数据存储到本地数据库中,这不是问题。 php sdk甚至为js sdk login afaik提供了一个特定的处理程序。无论如何,你应该尝试使用它,这并不复杂。 – luschn

回答

0

感谢您的帮助大家。我已经能够使用SDK v5.4解决问题并更改路径和重定向。