2021年PHP如何获取指定URL对应的Facebook评论数量
最新Facebook指定URL评论数量获取方案
前置准备
- 注册Facebook开发者账号,创建类型为「业务」的应用
- 开通*图谱API(Graph API)*访问权限,生成长期有效访问令牌(仅需基础公共数据权限,无需额外申请官方审核)
实现代码(适配WordPress PHP环境)
推荐使用WordPress内置的wp_remote_get函数发起请求,兼容性比原生file_get_contents更高,可避免多数服务器配置限制:
// 配置参数 $target_url = 'https://my.com/' . $my_slug; // 要查询的页面完整URL,需和评论插件嵌入的data-href属性完全一致 $access_token = '你生成的Graph API访问令牌'; $graph_api_url = "https://graph.facebook.com/v18.0/?id=" . urlencode($target_url) . "&fields=comment_count&access_token=" . $access_token; // 发起请求 $response = wp_remote_get($graph_api_url); if (is_wp_error($response)) { $fb_comment_count = 0; // 请求异常时默认赋值为0 } else { $response_body = wp_remote_retrieve_body($response); $data = json_decode($response_body, true); $fb_comment_count = isset($data['comment_count']) ? intval($data['comment_count']) : 0; } // 后续可直接使用$fb_comment_count变量做业务逻辑判断
注意事项
- 访问令牌需放在后端代码中,不可暴露给前端,避免令牌被盗用产生安全风险
- 可将获取到的评论数缓存到WordPress文章自定义字段(post meta)中,设置12~24小时的过期时间,无需每次页面加载都发起API请求,可提升页面加载速度、避免触发API限流规则
- 要查询的URL必须和Facebook评论插件嵌入时填写的
data-href属性值完全一致,否则会出现评论数不匹配的问题
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

