0
美好的一天家伙,我有我的Facebook登录使用PHP的问题。我做了一切妥当,我承担,但仍然得到错误。我想用更多的知识来帮助我解决这个问题。FB登录网站集成使用PHP sdk
下面是错误页面:
<?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);
}
?>
为什么不只是使用js sdk登录?它是如此容易处理,并没有改变在过去几年:http://www.devils-heaven.com/facebook-javascript-sdk-login/ – luschn
我不太熟悉那位先生。由于我使用的是自定义登录按钮,并且还需要将数据从API存储到本地数据库中,所以我推测PHP SDK将是最合适的 – ComputerMaverick
您仍然可以使用自定义登录按钮,文章解释了如何执行那。你也可以将数据存储到本地数据库中,这不是问题。 php sdk甚至为js sdk login afaik提供了一个特定的处理程序。无论如何,你应该尝试使用它,这并不复杂。 – luschn