如何像调用Google API拉取点评一样拉取Facebook点评并解决#210报错
问题排查与解决方案
错误码210本质是接口未识别到有效页面访问令牌,按以下步骤逐一排查即可:
- 确认你使用的是页面访问令牌,而非用户访问令牌。很多开发者误将用户令牌直接当页面令牌调用,导致报错。正确生成方式为:先获取拥有目标页面MODERATE权限、且已授权
pages_read_user_content的用户访问令牌,再用该用户令牌请求/{页面ID}?fields=access_token接口,即可拿到对应页面的专属访问令牌。 - 确认令牌与页面ID匹配。调用接口时使用的页面ID,必须和生成页面令牌时用的页面ID完全一致,不能跨页面调用。
- 校验令牌有效性。你可以到Meta开发者后台的访问令牌调试工具,粘贴你的令牌检查以下项:
- 令牌类型为Page类型
- 权限列表包含
pages_read_user_content - 关联的页面ID和你调用接口时使用的ID一致
- 令牌未过期
- 确认应用模式匹配需求。如果你的应用处于开发模式,只有应用的管理员、开发者、测试人员账号关联的页面可以正常调用,无需提前提交审核;如果要上线面向所有用户使用,必须先提交
pages_read_user_content权限的官方审核,通过后切换为正式模式才能正常调用。 - 检查传参格式。调用接口时访问令牌要做URL编码,避免特殊字符被截断导致令牌识别失败。
适配Facebook的PHP代码示例
// 谷歌地图拉取评论的逻辑可直接复用,仅需替换请求地址和参数 // 替换为你自己的页面ID和有效页面访问令牌 $pageId = '你的Facebook页面ID'; $accessToken = '你的页面访问令牌'; $fbUrl = "https://graph.facebook.com/{$pageId}/ratings?access_token=" . urlencode($accessToken); // 请求并解析数据 $fbContents = file_get_contents($fbUrl); $fbContents = json_decode($fbContents, true); // 输出评论示例 if (isset($fbContents['data']) && count($fbContents['data']) > 0) { // 输出第一条评论内容 echo '<span class="fb-review">' . htmlspecialchars($fbContents['data'][0]['review_text']) . '</span>'; echo '<br><br><br>'; }
内容的提问来源于stack exchange,提问作者user16627161
相关产品推荐
相关产品推荐

