我正在更新我的应用程序以使用新的PHP SDK,但我遇到此问题: 我想在单独的php文件中执行Facebook的内容以保持干净。 例如,这是我的fb.php页:为什么“使用”在包含在php中时不起作用?
<?php
require_once('sdk/autoload.php');
use Facebook\HttpClients\FacebookHttpable;
use Facebook\HttpClients\FacebookCurl;
use Facebook\HttpClients\FacebookCurlHttpClient;
use Facebook\Entities\AccessToken;
use Facebook\Entities\SignedRequest;
use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookOtherException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphObject;
use Facebook\GraphSessionInfo;
// start session
session_start();
// init app with app id and secret
FacebookSession::setDefaultApplication(...,...);
// see if a existing session exists
if (isset($_SESSION) && isset($_SESSION['fb_token'])) {
// create new session from saved access_token
$session = new FacebookSession($_SESSION['fb_token']);
// validate the access_token to make sure it's still valid
try {
if (!$session->validate()) {
$session = null;
}
} catch (Exception $e) {
// catch any exceptions
$session = null;
}
}
// see if we have a session
if (isset($session)) {
// save the session
$_SESSION['fb_token'] = $session->getToken();
// create a session using saved token or the new one we generated at login
$session = new FacebookSession($session->getToken());
//logged in
} else {
//user is not logged in
?>
<script>window.location="...link to login page...";</script>
<?php
exit;
}
它使用Facebook的会话页面时,可能看起来像这样(testing.php):
<?php
require_once('fb.php');
$request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$graphObject = $response->getGraphObject()->asArray();
echo "Welcome, ".$graphObject['first_name'];
这将返回该错误:
Fatal error: Class 'FacebookRequest' not found
的代码工作正常,当我在testing.php把use Facebook\FacebookRequest;
,但我不想这样做,因为这是把所有的Facebook会话的东西,在一个单独的F点b.php文件...
这是什么原因,并有一个解决方案如何保持我的所有Facebook的东西在一个单独的文件?
谢谢!
如果您将'$ request = new FacebookRequest($ session,'GET','/ me');'从您的testing.php移动到fb.php,会发生什么?你可以在testing.php中访问它吗? – 2015-02-10 15:52:13