PHP SDK调用Facebook广告insights接口提示API版本过时怎么解决?
报错原因
- 核心问题是你初始化Facebook PHP SDK实例时没有显式指定要调用的API版本,即使SDK本身是v11.0版本,SDK会默认调用内置的旧版本API端点,导致触发版本弃用报错。
- 额外排查点:你当前的请求路径没有携带版本前缀,也会导致请求被路由到旧版API入口。
解决方案
有两种修正方式,任选其一即可:
方式1:初始化SDK时指定默认API版本
修改Facebook实例初始化代码,新增default_graph_version配置项,代码示例如下:
$fb = new Facebook([ 'app_id' => $app_id, 'app_secret' => $app_secret, 'default_graph_version' => 'v11.0', // 新增这一行指定版本 ]); $response = $fb->get( '<CAMPAIGN_ID>/insights?fields=actions', $access_token, );
方式2:直接在请求路径中添加版本前缀
不需要修改初始化配置,直接在请求的资源路径前加上对应版本号即可:
$fb = new Facebook([ 'app_id' => $app_id, 'app_secret' => $app_secret, ]); $response = $fb->get( '/v11.0/<CAMPAIGN_ID>/insights?fields=actions', // 路径前加/v11.0前缀 $access_token, );
验证方法
请求完成后可以打印响应头中的facebook-api-version字段,确认实际调用的API版本是否符合预期:
$headers = $response->getHeaders(); echo $headers['facebook-api-version'];
内容的提问来源于stack exchange,提问作者Aromal S
相关产品推荐
相关产品推荐

