我使用的是PHP-SDK-v5.0软件包downloaded from here。我试图在example provided by facebook之后从公共群组获取后期Feed。当我尝试运行脚本时,它会抛出错误 - Fatal error: Class 'FacebookRequest' not found
。这是抛出错误的示例。
require_once __DIR__. '/Facebook/autoload.php';
$request = new FacebookRequest(
$session,
'GET',
'/{group-id}/feed',
array(
'fields' => 'full_picture,attachments.limit(3){media,title,type,url},icon,message',
'limit' => '1'
)
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
var_dump($graphObject);
我有另一个基于以下示例的简单facebook登录脚本,共享同一目录并且运行正常。所以绝对不是路径问题。
session_start();
require_once __DIR__. '/Facebook/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => 'xxxxx',
'app_secret' => 'xxxxxxxxxxx',
'default_graph_version' => 'v2.2',
]);
$helper = $fb->getRedirectLoginHelper();
$permissions = ['email', 'public_profile', 'user_friends']; // Optional permissions
$loginUrl = $helper->getLoginUrl('http://domain.com/fb-app/login-callback.php', $permissions);
echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>';
我怀疑这是一个与命名空间有关的问题,我不是很熟悉。我尝试使用this question问题的解决方案,建议使用use Facebook\FacebookRequest;
但不起作用,$request = new Facebook\FacebookRequest
也不行。此外,我觉得脚本不完整,应该包含访问令牌。我还在学习东西,请帮我解决这个问题。
答案 0 :(得分:3)
您应该在创建对象时专门定义命名空间:
$request = new Facebook\FacebookRequest(...
或与new FacebookRequest
保持一致,但在脚本的开头添加use Facebook\FacebookRequset
。
另请注意,您使用的是Facebook SDK v4语法而不是v5。有关如何将FacebookRequest
与SDK v5一起使用的信息,请参阅here。