You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP调用Facebook SDK出现Class 'Facebook'未找到等错误求助

Facebook群组成员数拉取代码修复方案

需调整的核心问题

  • 导入命名空间的use语句顺序错误:必须先加载vendor/autoload.php再导入SDK命名空间,否则PHP无法识别SDK路径,会出现配置读取失败、类找不到的错误
  • 使用的API已废弃:Facebook早在2016年就停止了FQL接口服务,新版SDK也已移除旧版api()调用方法,需改用官方最新的Graph API接口
  • 异常类未补全命名空间:catch块中捕获的异常类未指定完整命名空间,运行时会抛出类不存在错误
  • 统计逻辑冗余:无需拉取所有群组成员列表统计数量,可直接通过Graph API获取群组内置的member_count字段,请求效率更高

修正后完整可运行代码

<?php
// 先加载自动加载文件
require_once __DIR__ . '/vendor/autoload.php';
// 再导入命名空间
use Facebook\Facebook;
use Facebook\Exceptions\FacebookSDKException;
use Facebook\Exceptions\FacebookResponseException;

$config = [
    'app_id' => '替换为你的实际APP ID',
    'app_secret' => '替换为你的实际APP Secret',
    'default_graph_version' => 'v18.0', // 替换为你在Facebook后台创建应用时对应的API版本
    // 直接配置永久有效的应用访问令牌,格式为 应用ID|应用密钥
    'default_access_token' => '替换为你的APP ID|替换为你的APP Secret'
];

$member_count = 0;
try {
    $facebook = new Facebook($config);
    // 直接请求群组的member_count字段,替换0groupidhere0为你的实际群组ID
    $response = $facebook->get('/0groupidhere0?fields=member_count');
    $groupData = $response->getGraphNode();
    $member_count = $groupData->getField('member_count');
} catch (FacebookResponseException $e) {
    // 接口返回错误时的处理,可自行打印$e->getMessage()调试
    // echo 'Graph returned an error: ' . $e->getMessage();
} catch (FacebookSDKException $e) {
    // SDK初始化、验证错误时的处理
    // echo 'Facebook SDK returned an error: ' . $e->getMessage();
}
?>

<div><?php echo $member_count; ?></div>

额外注意事项

  • 你需要提前在Facebook开发者后台,给你的应用申请Groups API的相关权限,且你操作的账号需要是该群组的管理员,否则无法请求到群组数据
  • 代码中的API版本需要和你在Facebook开发者后台应用配置的版本保持一致,避免出现版本兼容错误

内容的提问来源于stack exchange,提问作者jfar_2020

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 23:06:04